Класс JndiLoginModule
- Все реализуемые интерфейсы:
LoginModule
public class JndiLoginModule extends Object implements LoginModule
Этот 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=имя пользователя. Если поиск успешен, этот 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 |
Инициализировать этот LoginModule. |
boolean |
login() |
Запрос имени пользователя и пароля. |
boolean |
logout() |
Выход пользователя. |
Подробное описание полей
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
Этот метод вызывается, если общая аутентификация в LoginContext прошла успешно (соответствующие модули REQUIRED, REQUISITE, SUFFICIENT и OPTIONAL прошли успешно).
Если попытка аутентификации этого LoginModule прошла успешно (проверяется путем извлечения сохраненного частного состояния методом login), то этот метод ассоциирует UnixPrincipal с Subject, расположенным в LoginModule. Если попытка аутентификации этого LoginModule завершилась неудачей, то этот метод удаляет любое сохраненное состояние.
- Определено в:
-
commitв интерфейсеLoginModule - Возвращает:
- true, если попытки входа и подтверждения этого LoginModule завершились успешно, или false в противном случае.
- Исключения:
-
LoginException- если подтверждение завершается неудачей
abort
public boolean abort() throws LoginException
Если попытка аутентификации этого LoginModule завершилась успешно (проверяется путем извлечения сохраненного частного состояния методами login и commit), то этот метод очищает любое сохраненное состояние.
- Определено в:
-
abortв интерфейсеLoginModule - Возвращает:
- false, если попытки входа и/или подтверждения этого LoginModule завершились неудачей, и true в противном случае.
- Исключения:
-
LoginException- если отмена завершается неудачей.
logout
public boolean logout() throws LoginException
Этот метод удаляет Principals, добавленные методом commit.
- Определено в:
-
logoutв интерфейсеLoginModule - Возвращает:
- true во всех случаях, так как этот
LoginModuleне должен игнорироваться. - Исключения:
-
LoginException- если выход завершается неудачей.
© 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.
https://download.java.net/java/early_access/jdk24/docs/api/jdk.security.auth/com/sun/security/auth/module/JndiLoginModule.html