Класс Configuration
- java.lang.Object
-
- javax.security.auth.login.Configuration
public abstract class Configuration extends Object
Объект Configuration отвечает за указание, какие LoginModules должны использоваться для конкретного приложения и в каком порядке должны вызываться LoginModules.
Конфигурация входа содержит следующую информацию. Обратите внимание, что этот пример представляет только стандартный синтаксис для Configuration. Реализации подклассов этого класса могут реализовывать альтернативные синтаксисы и могут извлекать Configuration из любого источника, например, файлов, баз данных или серверов.
Name {
ModuleClass Flag ModuleOptions;
ModuleClass Flag ModuleOptions;
ModuleClass Flag ModuleOptions;
};
Name {
ModuleClass Flag ModuleOptions;
ModuleClass Flag ModuleOptions;
};
other {
ModuleClass Flag ModuleOptions;
ModuleClass Flag ModuleOptions;
}; Каждый элемент в Configuration индексируется с помощью имени приложения, Name, и содержит список LoginModules, настроенных для этого приложения. Каждый LoginModule указывается с помощью его полных квалифицированных имен класса. Проверка подлинности происходит по списку модулей в точном порядке, указанном в нём. Если у приложения нет конкретного элемента, то используется элемент для "other".
Значение Flag управляет общим поведением во время проверки подлинности по стеку. Ниже представлено описание допустимых значений Flag и их семантики:
1) Required - The LoginModule is required to succeed.
If it succeeds or fails, authentication still continues
to proceed down the LoginModule list.
2) Requisite - The LoginModule is required to succeed.
If it succeeds, authentication continues down the
LoginModule list. If it fails,
control immediately returns to the application
(authentication does not proceed down the
LoginModule list).
3) Sufficient - The LoginModule is not required to
succeed. If it does succeed, control immediately
returns to the application (authentication does not
proceed down the LoginModule list).
If it fails, authentication continues down the
LoginModule list.
4) Optional - The LoginModule is not required to
succeed. If it succeeds or fails,
authentication still continues to proceed down the
LoginModule list. Общая проверка подлинности выполняется успешно только в том случае, если все LoginModules с флагом Required и Requisite завершаются успешно. Если настроен и успешно завершается Sufficient LoginModule, то только LoginModules с флагами Required и Requisite, расположенные перед этим Sufficient LoginModule, должны завершиться успешно, для успешной общей проверки подлинности. Если для приложения не настроены LoginModules с флагами Required или Requisite, то должен завершиться успешно хотя бы один Sufficient или Optional LoginModule.
ModuleOptions — это список значений, разделенных пробелами, специфичных для LoginModule, которые передаются непосредственно в основополагающие LoginModules. Параметры определяются самим LoginModule, и контролируют поведение внутри него. Например, LoginModule может определить параметры для поддержки возможностей отладки/тестирования. Правильный способ указания параметров в Configuration — использование следующей пары ключ-значение: debug="true". Ключ и значение должны быть разделены символом «равно», а значение должно быть заключено в двойные кавычки. Если в значении встречается строка в формате ${system.property}, она будет расширена до значения системной переменной. Обратите внимание, что количество параметров, которые может определить LoginModule, не ограничено.
Следующий пример Configuration записи на основе указанного выше синтаксиса:
Login {
com.sun.security.auth.module.UnixLoginModule required;
com.sun.security.auth.module.Krb5LoginModule optional
useTicketCache="true"
ticketCache="${user.home}${/}tickets";
}; Этот Configuration указывает, что для приложения под названием "Login" пользователи должны сначала пройти проверку подлинности в com.sun.security.auth.module.UnixLoginModule, которая должна завершиться успешно. Даже если проверка подлинности UnixLoginModule завершится неудачно, com.sun.security.auth.module.Krb5LoginModule всё равно будет вызван. Это помогает скрыть источник ошибки. Так как Krb5LoginModule имеет флаг Optional, общая проверка подлинности выполняется успешно только в том случае, если UnixLoginModule (Required) завершится успешно.
Также обратите внимание, что параметры LoginModule, useTicketCache="true" и ticketCache=${user.home}${/}tickets", передаются в Krb5LoginModule. Эти параметры указывают Krb5LoginModule использовать кэш билетов по указанному пути. Системные переменные user.home и / (file.separator) расширяются до их соответствующих значений.
В любое время во время выполнения существует только один объект Configuration. Объект Configuration может быть установлен вызовом метода setConfiguration. Установленный объект Configuration можно получить, вызвав метод getConfiguration.
Если ни один объект Configuration не был установлен во время выполнения, вызов getConfiguration устанавливает экземпляр реализации по умолчанию Configuration (реализация подкласса по умолчанию этого абстрактного класса). Реализацию Configuration по умолчанию можно изменить, установив значение системной переменной login.configuration.provider в полное квалифицированное имя желаемой реализации подкласса Configuration.
Код приложения может напрямую наследоваться от Configuration, чтобы предоставить собственную реализацию. Кроме того, экземпляр объекта Configuration может быть создан путём вызова одного из методов фабрики getInstance со стандартным типом. Типом политики по умолчанию является "JavaLoginConfig". См. раздел Configuration в документации по стандартным именам алгоритмов Java Cryptography Architecture для получения списка стандартных типов Configuration.
- См. также:
-
LoginContext,security properties
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static interface |
Configuration.Parameters Это представляет собой интерфейс-маркер для параметров Configuration. |
Краткое описание конструкторов
| Модификатор | Конструктор и описание |
|---|---|
protected |
Configuration() Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
abstract AppConfigurationEntry[] |
getAppConfigurationEntry(String name) Получение AppConfigurationEntries для указанного name из этого Configuration. |
static Configuration |
getConfiguration() Получение установленной конфигурации входа. |
static Configuration |
getInstance(String type,
Configuration.Parameters params) Возвращает объект Configuration указанного типа. |
static Configuration |
getInstance(String type,
Configuration.Parameters params,
Provider provider) Возвращает объект Configuration указанного типа. |
static Configuration |
getInstance(String type,
Configuration.Parameters params,
String provider) Возвращает объект Configuration указанного типа. |
Configuration.Parameters |
getParameters() Возвращает параметры Configuration. |
Provider |
getProvider() Возвращает поставщика этой Configuration. |
String |
getType() Возвращает тип этой Configuration. |
void |
refresh() Обновление и перезагрузка Configuration. |
static void |
setConfiguration(Configuration configuration) Установка конфигурации входа |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
Configuration
protected Configuration()
Единственный конструктор. (Для вызова конструкторами подклассов, обычно неявным).
Методы
getConfiguration
public static Configuration getConfiguration()
Получить установленную конфигурацию входа.
- Возвращает:
- конфигурацию входа. Если объект Configuration был задан через метод
Configuration.setConfiguration, то возвращается этот объект. В противном случае возвращается объект конфигурации по умолчанию. - Выбрасывает:
-
SecurityException- если у вызывающего объекта нет разрешения на получение конфигурации. - См. также:
setConfiguration(javax.security.auth.login.Configuration)
setConfiguration
public static void setConfiguration(Configuration configuration)
Установить конфигурацию входа.
- Параметры:
-
configuration- новая конфигурация - Выбрасывает:
-
SecurityException- если текущему потоку нет разрешения на установку конфигурации. - См. также:
getConfiguration()
getInstance
public static Configuration getInstance(String type,
Configuration.Parameters params)
throws NoSuchAlgorithmException Возвращает объект Configuration указанного типа.
Этот метод перебирает список зарегистрированных поставщиков безопасности, начиная с наиболее предпочтительного. Возвращается новый объект Configuration, инкапсулирующий реализацию ConfigurationSpi от первого поставщика, поддерживающего указанный тип.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
type- указанный тип Configuration. Список стандартных типов Configuration см. в разделе Configuration в документации по стандартным именам алгоритмов Java Cryptography Architecture. -
params- параметры для Configuration, которые могут быть null. - Возвращает:
- новый объект Configuration.
- Выбрасывает:
-
SecurityException- если у вызывающего объекта нет разрешения на получение экземпляра Configuration для указанного типа. -
NullPointerException- если указанный тип равен null. -
IllegalArgumentException- если указанные параметры не понятны реализации ConfigurationSpi от выбранного поставщика. -
NoSuchAlgorithmException- если ни один поставщик не поддерживает реализацию ConfigurationSpi для указанного типа. - С:
- 1.6
- См. также:
Provider
getInstance
public static Configuration getInstance(String type,
Configuration.Parameters params,
String provider)
throws NoSuchProviderException,
NoSuchAlgorithmException Возвращает объект Configuration указанного типа.
Возвращается новый объект Configuration, инкапсулирующий реализацию ConfigurationSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
type- указанный тип Configuration. Список стандартных типов Configuration см. в разделе Configuration в документации по стандартным именам алгоритмов Java Cryptography Architecture. -
params- параметры для Configuration, которые могут быть null. -
provider- поставщик. - Возвращает:
- новый объект Configuration.
- Выбрасывает:
-
SecurityException- если у вызывающего объекта нет разрешения на получение экземпляра Configuration для указанного типа. -
NullPointerException- если указанный тип равен null. -
IllegalArgumentException- если указанный поставщик равен null или пуст, или если указанные параметры не понятны реализацией ConfigurationSpi от указанного поставщика. -
NoSuchProviderException- если указанный поставщик не зарегистрирован в списке поставщиков безопасности. -
NoSuchAlgorithmException- если указанный поставщик не поддерживает реализацию ConfigurationSpi для указанного типа. - С:
- 1.6
- См. также:
Provider
getInstance
public static Configuration getInstance(String type,
Configuration.Parameters params,
Provider provider)
throws NoSuchAlgorithmException Возвращает объект Configuration указанного типа.
Возвращается новый объект Configuration, инкапсулирующий реализацию ConfigurationSpi от указанного объекта Provider. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.
- Параметры:
-
type- указанный тип Configuration. Список стандартных типов Configuration см. в разделе Configuration в документации по стандартным именам алгоритмов Java Cryptography Architecture. -
params- параметры для Configuration, которые могут быть null. -
provider- поставщик. - Возвращает:
- новый объект Configuration.
- Выбрасывает:
-
SecurityException- если у вызывающего объекта нет разрешения на получение экземпляра Configuration для указанного типа. -
NullPointerException- если указанный тип равен null. -
IllegalArgumentException- если указанный поставщик равен null, или если указанные параметры не понятны реализацией ConfigurationSpi от указанного поставщика. -
NoSuchAlgorithmException- если указанный поставщик не поддерживает реализацию ConfigurationSpi для указанного типа. - С:
- 1.6
- См. также:
Provider
getProvider
public Provider getProvider()
Возвращает поставщика этой конфигурации.
У этого экземпляра Configuration будет поставщик только в том случае, если он был получен путем вызова Configuration.getInstance. В противном случае этот метод возвращает null.
- Возвращает:
- поставщик этой конфигурации или null.
- С:
- 1.6
getType
public String getType()
Возвращает тип этой конфигурации.
У этого экземпляра Configuration будет тип только в том случае, если он был получен путем вызова Configuration.getInstance. В противном случае этот метод возвращает null.
- Возвращает:
- тип этой конфигурации или null.
- С:
- 1.6
getParameters
public Configuration.Parameters getParameters()
Возвращает параметры конфигурации.
У этого экземпляра Configuration будут параметры только в том случае, если он был получен путем вызова Configuration.getInstance. В противном случае этот метод возвращает null.
- Возвращает:
- параметры конфигурации или null.
- С:
- 1.6
getAppConfigurationEntry
public abstract AppConfigurationEntry[] getAppConfigurationEntry(String name)
Получить AppConfigurationEntries для указанного имени из этой конфигурации.
- Параметры:
-
name- имя, используемое для индексации конфигурации. - Возвращает:
- массив AppConfigurationEntries для указанного имени из этой конфигурации или null, если нет записей для указанного имени
refresh
public void refresh()
Обновить и перезагрузить конфигурацию.
Этот метод вызывает обновление/перезагрузку содержимого этого объекта Configuration способом, зависящим от реализации. Например, если этот объект Configuration хранит свои записи в файле, вызов refresh может привести к повторному чтению файла.
Реализация этого метода по умолчанию ничего не делает. Этот метод следует переопределить, если операция обновления поддерживается реализацией.
- Выбрасывает:
-
SecurityException- если у вызывающего объекта нет разрешения на обновление конфигурации.
© 1993, 2020, 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.