Spec-Zone.ru › OpenJDK 8

Класс 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)

Установка конфигурации входа 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.

Spec-Zone.ru

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