Есть ли какая-либо система управления доступом на основе ролей на основе Java с открытым исходным кодом?Управление доступом на основе ролей
ответ
Spring Security может быть полезно для вас.
Есть много возможных решений, но один лучше (т.е. отвечает вашим потребности, не будучи слишком тяжелыми или слишком сложными для реализации) зависит от ваших требований:
вы говорите о контроле доступа к веб-сервис или что-то еще?
Какой контроль доступа вы хотите реализовать? Основано исключительно на URL-адресах ресурсов или в зависимости от состояния/метаданных запрашиваемых объектов? Роли простые или иерархические? Требуются ли разные действия для разных ролей?
Вам также нужно иметь дело с авторизацией?
Я полагаю, что вопрос, который вы пытаетесь ответить:
ли пользователь у есть доступ, чтобы сделать операцию оп на объекте о?
Следует учитывать, как ваши объекты и группы пользователей определяются с точки зрения бизнеса (вне механизма AC). Для любой реализации RBAC вам нужно настроить ее, чтобы сообщить, что представляют собой ваши пользователи и группы пользователей. Это повлияет на ваш выбор реализации RBAC.
Другой (более конкретный) вопрос: вам нужно поддерживать переопределение разрешений, включает и исключает? В частности, хотите ли вы поддерживать сценарий, что объект o1 доступен для usergroup g1, но не пользователь u1 (который является частью группы g1)?
В зависимости от конкретных ответов, jguard (который построен над JAAS) может быть очень хороший вариант - http://jguard.net/
APACHE SHIRO Java Security Framework
Он использует Role Based Access Control на Authorization
Fortress - совместимый с ANSI RBAC движок (INCITS 359) и выпущен под лицензией BSD с открытым исходным кодом. Вы можете оттянуть его отсюда: http://iamfortress.org.