Spec-Zone.ru › OpenJDK 27

Класс 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.
Начиная с:
1.4

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

Модификатор и тип Поле Описание
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()
Выполняет выход пользователя из системы.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определённого промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определённого промежутка реального времени.

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

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 — если выход из системы завершается неудачно.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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