Ответ 1
Spring Безопасность может быть вам полезной.
Есть ли какая-либо система управления доступом на основе ролей на основе Java с открытым исходным кодом?
Spring Безопасность может быть вам полезной.
Я предполагаю, что вопрос, на который вы пытаетесь ответить, следующий:
Доступ ли пользователь u к операции op на объекте o?
Следует учитывать, как ваши объекты домена и группы пользователей определяются с точки зрения бизнеса (вне механизма AC). Для любой реализации RBAC вам необходимо настроить ее, чтобы сообщить, что представляют собой ваши пользователи и группы пользователей. Это повлияет на ваш выбор реализации RBAC.
Другой (более конкретный) вопрос: вам нужно поддерживать права переопределения, включает и исключает? В частности, хотите ли вы поддерживать сценарий, что объект o1 доступен для usergroup g1, но не пользователь u1 (который является частью группы g1)?
В зависимости от конкретных ответов jguard (который построен поверх JAAS) может быть очень хорошим вариантом - http://jguard.net/
APACHE SHIRO Безопасность Java Framework
Он использует Контроль доступа на основе ролей по авторизации
Существует множество возможных решений, но лучше всего (т.е. удовлетворяет ваши потребности, не будучи слишком тяжелым или слишком сложным для реализации) зависит от ваших требований:
Вы говорите об управлении доступом для веб-службы или что-то еще?
Какой контроль доступа вы хотите реализовать? Основано исключительно на URL-адресах ресурсов или в зависимости от состояния/метаданных запрашиваемых объектов? Роли простые или иерархические? Требуются ли разные действия для разных ролей?
Вам также нужно иметь дело с авторизацией?
Существует несколько платформ, которые предоставляют вам систему авторизации:
Spring Security
Spring Security широко настраиваемый фреймворк широко используется для решения проблем аутентификации и контроля доступа (авторизации), возникающих в любом корпоративном приложении, разработанном на Java.
Апач Широ
Apache Shiro - это мощная и простая в использовании инфраструктура безопасности Java, которая выполняет аутентификацию, авторизацию, криптографию и управление сеансами. С помощью простого в понимании API Shiros вы можете быстро и легко защитить любое приложение - от самых маленьких мобильных приложений до самых больших веб-приложений и приложений для предприятий.
JAAS (службы аутентификации и авторизации Java)
JAAS - это один из API-интерфейсов безопасности, который состоит из пакетов Java, предназначенных исключительно для аутентификации и авторизации пользователей. Представленный как дополнительный пакет в Java SE 1.3, JAAS позже был интегрирован в JDK, начиная с JDK 1.4.
OACC
Эта инфраструктура безопасности приложений Java предназначена для точного управления доступом на уровне объектов. Его задача - предоставить полнофункциональный API для обеспечения, а также для управления потребностями приложения в аутентификации и авторизации. Он предлагает полную реализацию гибкой и надежной модели безопасности.
jCasbin
jCasbin - это мощная и эффективная библиотека управления доступом с открытым исходным кодом для проектов Java. Он обеспечивает поддержку принудительной авторизации на основе различных моделей контроля доступа.
Крепость - это ANSI RBAC совместимый движок (INCITS 359) и выпущена под лицензией BSD с открытым исходным кодом. Вы можете оттянуть это отсюда: http://iamfortress.org.