Изменение ролей JAAS на основе флагов лицензии на программное обеспечение

StackOverflow https://stackoverflow.com/questions/676189

Вопрос

У меня есть довольно обычное приложение Java EE, работающее на JBOSS.Он использует аутентификацию JAAS JBoss DatabaseLoginModule.В Hibernate также есть пользователи/роли прикладного уровня, которые абсолютно одинаковы.

У меня есть идея (которая, я думаю, в любом случае очень полезна для меня) иметь бит возможности, который я могу установить в объекте лицензии на программное обеспечение (не используя спящий режим), который делает всех пользователей пользователями только для чтения.Это позволяет мне создать версию продукта, доступную только для чтения, путем повторного лицензирования.

Я хотел бы переназначить ассоциации пользователей на основе логического флага, доступного внутри программы.

Обычно мы получаем (многие-многие присоединяются)

Пользователь -*UserRole*-Role -*RoleActions

где

user.roleid => role.id

Когда установлено логическое значение (бит возможности, установленный в лицензии на программное обеспечение)

Я бы хотел, чтобы JAAS действовал так, как будто всем пользователям назначена роль =1, если так указано в лицензии.

Есть идеи ?

Это было полезно?

Решение

Создав подкласс DatabaseServerLoginModule, я могу выполнять дополнительные проверки.(по лицензии на программное обеспечение)

Тривиально я могу тогда

  1. Если срок действия лицензии истек, укажите пользователя только для чтения (учетные данные фиксированы).

  2. Если в лицензии установлен бит возможности только для чтения, укажите пользователя только для чтения (учетные данные фиксированы).

Поскольку вход в систему был перехвачен, поиск пользователя Hibernate будет соответствовать нужному пользователю.

Другие советы

Возможно, я здесь упускаю суть, но почему бы не сделать это программно?

В User объект, предоставьте временный геттер, например getAuthenticatedRoles() это дополнительно отфильтрует то, что Hibernate загружен.Кроме того, создайте исходный метод получения сопоставленной коллекции. protected, и использовать только getAuthenticatedRoles() из другого кода Java.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top