Spec-Zone.ru › OpenJDK 17

Класс JndiLoginModule

java.lang.Object
com.sun.security.auth.module.JndiLoginModule
Все реализованные интерфейсы:
LoginModule
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_url
 
name_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 предполагает, что пароль хранится в виде массива байтов, который при преобразовании в String, имеет следующий формат:

      "{crypt}encrypted_password"
 
Сервер каталогов LDAP должен быть настроен на разрешение чтения атрибута userPassword. Если пользователь ввел корректное имя пользователя и пароль, этот LoginModule связывает 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.
 

Краткое описание полей

Модификатор и тип Поле Описание
final String GROUP_PROVIDER
Служба каталогов/путь, где этот модуль может получить доступ к соответствующей информации о группах.
final String USER_PROVIDER
Служба каталогов/путь, где этот модуль может получить доступ к соответствующей информации о пользователях.

Краткое описание конструкторов

Конструктор Описание
JndiLoginModule()
Создает JndiLoginModule.

Краткое описание методов

Модификатор и тип Метод Описание
boolean abort()
Этот метод вызывается, если общая аутентификация LoginContext завершилась неудачей.
boolean commit()
Абстрактный метод для подтверждения процесса аутентификации (этап 2).
void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
Инициализация этого LoginModule.
boolean login()
Запрос имени пользователя и пароля.
boolean logout()
Выход пользователя.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

USER_PROVIDER

public final String USER_PROVIDER
Служба каталогов/путь, где этот модуль может получить доступ к соответствующей информации о пользователях.
См. также:
  • Значения константных полей

GROUP_PROVIDER

public final String GROUP_PROVIDER
Служба каталогов/путь, где этот модуль может получить доступ к соответствующей информации о группах.
См. также:
  • Значения константных полей

Подробное описание конструкторов

JndiLoginModule

public JndiLoginModule()
Создает JndiLoginModule.

Подробное описание методов

initialize

public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
Инициализация этого LoginModule.
Определено в:
initialize в интерфейсе LoginModule
Параметры:
subject - Subject, подлежащий аутентификации.
callbackHandler - CallbackHandler для взаимодействия с конечным пользователем (например, запрос имен пользователей и паролей).
sharedState - общие LoginModule состояние.
options - параметры, указанные в параметрах входа Configuration для этого конкретного LoginModule.

login

public boolean login() throws LoginException
Запрос имени пользователя и пароля. Проверка пароля по отношению к соответствующей службе имен.
Определено в:
login в интерфейсе LoginModule
Возвращает:
всегда true, так как этот LoginModule не должен игнорироваться.
Исключения:
FailedLoginException - если аутентификация завершилась неудачей.
LoginException - если этот LoginModule не может выполнить аутентификацию.

commit

public boolean commit() throws LoginException
Абстрактный метод для подтверждения процесса аутентификации (этап 2).

Этот метод вызывается, если общая аутентификация LoginContext прошла успешно (соответствующие LoginModules REQUIRED, REQUISITE, SUFFICIENT и OPTIONAL успешно завершили работу).

Если попытка аутентификации этого LoginModule прошла успешно (проверяется путем получения сохраненного в частном состоянии значения методом login), то этот метод связывает UnixPrincipal с Subject, расположенным в LoginModule. Если попытка аутентификации этого LoginModule завершилась неудачей, то этот метод удаляет все ранее сохраненное состояние.

Определено в:
commit в интерфейсе LoginModule
Возвращает:
true, если попытки входа и подтверждения этого LoginModule прошли успешно, или false в противном случае.
Исключения:
LoginException - если подтверждение завершается неудачей

abort

public boolean abort() throws LoginException
Этот метод вызывается, если общая аутентификация LoginContext завершилась неудачей. (соответствующие LoginModules REQUIRED, REQUISITE, SUFFICIENT и OPTIONAL не завершили работу).

Если попытка аутентификации этого LoginModule прошла успешно (проверяется путем получения сохраненного в частном состоянии значения методами login и commit), то этот метод очищает все ранее сохраненное состояние.

Определено в:
abort в интерфейсе LoginModule
Возвращает:
false, если попытки входа и/или подтверждения этого LoginModule завершились неудачей, и true в противном случае.
Исключения:
LoginException - если отмена завершается неудачей.

logout

public boolean logout() throws LoginException
Выход пользователя.

Этот метод удаляет Principals, которые были добавлены методом commit.

Определено в:
logout в интерфейсе LoginModule
Возвращает:
true во всех случаях, так как этот LoginModule не должен игнорироваться.
Исключения:
LoginException - если выход завершается неудачей.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.security.auth/com/sun/security/auth/module/JndiLoginModule.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API