пятница, 10 июля 2009 г.

manual javaee realm

Недавно я писал о том, как настроить jdbc realm в glassfish. Сейчас я попытаюсь рассказать, о том, как написать свой realm самому.

Итак, что же такое этот realm?
Realm - это такой механизм, отвечающий за аутентификацию пользователя на сервере приложений. Когда пользователь (точнее говорить principal) пытается получить доступ к какому-либо ресурсу сервера приложений, если для этого нужна авторизация, то realm используется для получения списка групп, в которых состоит пользователь. На основании этого списка решается - позволено ли данному пользователю воспользоваться данным ресурсом (будь то java-bean, jdbc-datasource и т.д.).

В совокупности с JAAS фреймворком они представляют собой подсистему аутентификации glassfish`а.

Для того, что бы написать свой realm для glassfish v2.1 необходимо реализовать два класса:

com.sun.appserv.security.AppservRealm
com.sun.appserv.security.AppservPasswordLoginModule

как вы их будите реализовывать, ваше дело, советую глянуть это и это в качестве примера

и добавить информацию о них в:

domain_dir/config/domain.xml
domain_dir/config/login.conf

замечание: для того что бы эти классы были видны в IDE я подкинул им пару jar-ов из glassfish`a, которые после билда можно исключить из списка файлов, т.к. они уже есть на сервере приложений:
glassfish_dir/lib/appserv-ext.jar
glassfish_dir/lib/appserv-rt.jar