Java



           

Продолжим настройку серверной части JAAS, простейший серверный логин-модуль. - часть 3


UsersRolesLoginModule.java) ..................

Теперь мы видим, что сервер при попытке инициализации нашего подключенного домена, не нашел второй файл - roles.properties. Для исправления данной ситуации, в каталоге нашей конфигурации мы создаем файл ...\jboss\server\my_configuration\conf\roles.properties со следующим содержимым:

test=ViewObjects #также можно поместить имена других пользователей
и назначить им роли-разрешения user2=ManageObjects #user3=ManageObjects,Admin,
DocumentPrinting

Определив таким образом двух пользователей в системе мы назначили им "роли-права". Пользователь "test" при успешном подключении получит список ролей-прав, который состоит только из одной роли - ViewObjects. Другие пользователи получать свои права, например "user2" - ManageObjects. Если вы все-таки получаете ошибку:

2004-03-07 10:31:29,735 ERROR
[org.jboss.ejb.plugins.SecurityInterceptor] Authentication exception,
principal=null

это означает, что где-то в настройках вы ошиблись.

Рассмотрим, что происходит при обращении пользователя к серверу через GUI клиента. Когда информация о пользователе, проходя через класс ClientLoginModule, попадает на сервер при обращении к EJB, инициализируется класс логин-модуля UsersRolesLoginModule. Он считывет файл users.properties и проверяет наличие такого же имени и соответствие паролей. Также происходит считывание и кэширование "прав доступа" из файла roles.properties и ассоциирование их с security context-ом данного клиента внутри EJB контейнера. В процессе авторизации набор прав доступа сравнивается с правами доступа определенного ресурса. Например, вот что можно будет увидеть в логе сервера, если клиент "test" не имет прав для доступа к методу "create" бина:

ERROR [org.jboss.ejb.plugins.
SecurityInterceptor] Insufficient method permissions,
principal=test, method=create, requiredRoles=[ManageObjects],
principalRoles=[ViewObjects]

Контейнер выдает исключение и сообщает о недостатке прав доступа, указывая имя клиента, название метода, требуемые ресурсом права и существующие у пользователя права доступа.




Содержание  Назад  Вперед