Изменение ролей JAAS на основе флагов лицензий на программное обеспечение - PullRequest
1 голос
/ 24 марта 2009

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

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

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

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

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

, где

user.roleid => role.id

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

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

Есть идеи?

Ответы [ 2 ]

1 голос
/ 26 мая 2009

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

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

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

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

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

0 голосов
/ 25 марта 2009

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

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

...