Spec-Zone .ru
спецификации, руководства, описания, API
|
public class JndiLoginModule extends Object implements LoginModule
Подсказки модуля для имени пользователя и пароля и затем проверяют пароль против пароля, сохраненного в службе каталогов, сконфигурированной под JNDI.
Это LoginModule
взаимодействует с любым совместимым поставщиком услуг JNDI. Направить это LoginModule
чтобы использовать определенного поставщика услуг JNDI, две опции должны быть определены во входе в систему Configuration
для этого LoginModule
.
user.provider.url=name_service_url group.provider.url=name_service_urlname_service_url определяет службу каталогов и путь где это
LoginModule
может получить доступ к соответствующему пользователю и информации о группе. Поскольку это LoginModule
только выполняет одноуровневые поиски, чтобы найти соответствующую информацию о пользователе, URL
должен указать на каталог на один уровень выше, где информация о пользователе и группе сохранена в службе каталогов. Например, чтобы сообщить этому LoginModule
чтобы связаться с сервером NIS, следующие URL должны быть определены: user.provider.url="nis://NISServerHostName/NISDomain/user" group.provider.url="nis://NISServerHostName/NISDomain/system/group"NISServerHostName определяет имя хоста сервера сервера NIS (например, nis.sun.com, и NISDomain определяет домен для того сервера NIS (например, jaas.sun.com. Чтобы связаться с сервером LDAP, следующие URL должны быть определены:
user.provider.url="ldap://LDAPServerHostName/LDAPName" group.provider.url="ldap://LDAPServerHostName/LDAPName"LDAPServerHostName определяет имя хоста сервера сервера LDAP, который может включать номер порта (например, ldap.sun.com:389), и LDAPName определяет имя записи в каталоге LDAP (например, ou=People, o=Sun, c=US и ou=Groups, o=Sun, c=US для пользователя и информации о группе, соответственно).
Формат, в котором информация пользователя должна храниться в службе каталогов, определяется в RFC 2307. Определенно, это LoginModule
будет искать запись пользователя в службе каталогов, используя атрибут uid пользователя, где uid=username. Если поиск успешно выполняется, это LoginModule
тогда получит зашифрованный пароль пользователя из полученной записи, используя атрибут userPassword. Это LoginModule
предполагает, что пароль сохранен как байтовый массив, который когда преобразовано в a String
, имеет следующий формат:
"{crypt}encrypted_password"Сервер каталогов LDAP должен быть сконфигурирован, чтобы разрешить доступ для чтения к атрибуту userPassword. Если пользователь, вводимый допустимое имя пользователя и пароль, это
LoginModule
партнеры a UnixPrincipal
, UnixNumericUserPrincipal
, и соответствующий UnixNumericGroupPrincipals с Subject
. Этот LoginModule также распознает следующий Configuration
опции:
debug if, true, debug messages are output to System.out.
useFirstPass if, true, this LoginModule retrieves the
username and password from the module's shared state,
using "javax.security.auth.login.name" and
"javax.security.auth.login.password" as the respective
keys. The retrieved values are used for authentication.
If authentication fails, no attempt for a retry is made,
and the failure is reported back to the calling
application.
tryFirstPass if, true, this LoginModule retrieves the
the username and password from the module's shared state,
using "javax.security.auth.login.name" and
"javax.security.auth.login.password" as the respective
keys. The retrieved values are used for authentication.
If authentication fails, the module uses the
CallbackHandler to retrieve a new username and password,
and another attempt to authenticate is made.
If the authentication fails, the failure is reported
back to the calling application.
storePass if, true, this LoginModule stores the username and password
obtained from the CallbackHandler in the module's
shared state, using "javax.security.auth.login.name" and
"javax.security.auth.login.password" as the respective
keys. This is not performed if existing values already
exist for the username and password in the shared state,
or if authentication fails.
clearPass if, true, this LoginModule
clears the
username and password stored in the module's shared state
after both phases of authentication (login and commit)
have completed.
Модификатор и Тип | Поле и Описание |
---|---|
Строка |
GROUP_PROVIDER |
Строка |
USER_PROVIDER
Провайдер JNDI
|
Конструктор и Описание |
---|
JndiLoginModule() |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
abort()
Этот метод вызывают если полная отказавшая аутентификация LoginContext.
|
boolean |
commit()
Абстрактный метод, чтобы фиксировать процесс аутентификации (фаза 2).
|
void |
initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
Инициализируйте это
LoginModule . |
boolean |
login()
Подсказка для имени пользователя и пароля.
|
boolean |
logout()
Выход из системы пользователь.
|
public final String USER_PROVIDER
public final String GROUP_PROVIDER
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
LoginModule
. initialize
в интерфейсе LoginModule
subject
- Subject
аутентифицироваться. callbackHandler
- a CallbackHandler
для того, чтобы связаться с конечным пользователем (запрашивающий имена пользователей и пароли, например). sharedState
- совместно используемый LoginModule
состояние. options
- опции определяются во входе в систему Configuration
для этой детали LoginModule
.public boolean login() throws LoginException
Подсказка для имени пользователя и пароля. Проверьте пароль против соответствующей службы имен.
login
в интерфейсе LoginModule
LoginModule
не должен быть проигнорирован.FailedLoginException
- если аутентификация перестала работать. LoginException
- если это LoginModule
неспособно выполнить аутентификацию.public boolean commit() throws LoginException
Этот метод вызывают если полная аутентификация LoginContext, за которой следуют (соответствующий НЕОБХОДИМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ и ДОПОЛНИТЕЛЬНЫЙ LoginModules, за которым следуют).
Если собственная попытка аутентификации этого LoginModule, за которой следуют (проверенное получение частного состояния, сохраненного login
метод), тогда этот метод связывает a UnixPrincipal
с Subject
расположенный в LoginModule
. Если собственная аутентификация этого LoginModule, предпринятая отказавший, то этот метод удаляет любое состояние, которое было первоначально сохранено.
commit
в интерфейсе LoginModule
LoginException
- если фиксация перестала работатьpublic boolean abort() throws LoginException
Этот метод вызывают если полная отказавшая аутентификация LoginContext. (соответствующий НЕОБХОДИМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ и ДОПОЛНИТЕЛЬНЫЙ LoginModules не успешно выполнялся).
Если собственная попытка аутентификации этого LoginModule, за которой следуют (проверенное получение частного состояния, сохраненного login
и commit
методы), тогда этот метод очищает любое состояние, которое было первоначально сохранено.
abort
в интерфейсе LoginModule
LoginException
- если аварийное прекращение работы перестало работать.public boolean logout() throws LoginException
Этот метод удаляет Принципалы, которые были добавлены commit
метод.
logout
в интерфейсе LoginModule
LoginModule
не должен быть проигнорирован.LoginException
- если выход из системы перестал работать.
Авторское право © 1998, 2011, Oracle и/или его филиалы. Все права защищены.