Класс Sasl
- java.lang.Object
-
- javax.security.sasl.Sasl
public class Sasl extends Object
Статический класс для создания клиентов и серверов SASL.
Этот класс определяет политику поиска, загрузки и создания экземпляров клиентов и серверов SASL.
Например, приложение или библиотека получает клиента SASL, выполнив действия примерно такого вида:
SaslClient sc = Sasl.createSaslClient(mechanisms,
authorizationId, protocol, serverName, props, callbackHandler); Затем оно может продолжить использование экземпляра для создания подключения аутентификации. Аналогично, сервер получает сервер SASL, используя код, который выглядит следующим образом:
SaslServer ss = Sasl.createSaslServer(mechanism,
protocol, serverName, props, callbackHandler);
- С момента:
- 1.5
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static String |
BOUND_SERVER_NAME Имя свойства, которое определяет имя связанного сервера для несвязанного сервера. |
static String |
CREDENTIALS Имя свойства, которое определяет используемые учётные данные. |
static String |
MAX_BUFFER Имя свойства, которое определяет максимальный размер буфера приёма в байтах |
static String |
POLICY_FORWARD_SECRECY Имя свойства, которое определяет, требуются ли механизмы, реализующие взаимную секретность между сеансами. |
static String |
POLICY_NOACTIVE Имя свойства, которое определяет, разрешены ли механизмы, подверженные активным (несловарным) атакам. |
static String |
POLICY_NOANONYMOUS Имя свойства, которое определяет, разрешены ли механизмы, принимающие анонимный вход. |
static String |
POLICY_NODICTIONARY Имя свойства, которое определяет, разрешены ли механизмы, подверженные пассивным словарным атакам. |
static String |
POLICY_NOPLAINTEXT Имя свойства, которое определяет, разрешены ли механизмы, подверженные простым пассивным атакам с использованием открытого текста (например, «PLAIN»). |
static String |
POLICY_PASS_CREDENTIALS Имя свойства, которое определяет, требуются ли механизмы, передающие учётные данные клиента. |
static String |
QOP Имя свойства, которое определяет используемое качество защиты. |
static String |
RAW_SEND_SIZE Имя свойства, которое определяет максимальный размер буфера отправки в сыром виде в байтах |
static String |
REUSE Имя свойства, которое определяет, следует ли повторно использовать информацию о предварительно аутентифицированном сеансе. |
static String |
SERVER_AUTH Имя свойства, которое определяет, должен ли сервер аутентифицироваться для клиента. |
static String |
STRENGTH Имя свойства, которое определяет используемую силу шифрования. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
static SaslClient |
createSaslClient(String[] mechanisms,
String authorizationId,
String protocol,
String serverName,
Map<String,?> props,
CallbackHandler cbh) Создаёт |
static SaslServer |
createSaslServer(String mechanism,
String protocol,
String serverName,
Map<String,?> props,
CallbackHandler cbh) Создаёт |
static Enumeration<SaslClientFactory> |
getSaslClientFactories() Получает перечисление известных фабрик для создания |
static Enumeration<SaslServerFactory> |
getSaslServerFactories() Получает перечисление известных фабрик для создания |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
QOP
public static final String QOP
Имя свойства, которое определяет качество защиты, которое использовать. Свойство содержит упорядоченный список значений качества защиты, разделенных запятыми, которые клиент или сервер готовы поддерживать. Значение qop может быть одним из следующих:
-
"auth"— только аутентификация -
"auth-int"— аутентификация плюс защита целостности -
"auth-conf"— аутентификация плюс защита целостности и конфиденциальности
"auth". Значение этой константы равно "javax.security.sasl.qop". - См. также:
- Значения константного поля
STRENGTH
public static final String STRENGTH
Имя свойства, которое определяет силу шифрования, используемую. Свойство содержит упорядоченный список значений силы шифрования, разделенных запятыми, которые клиент или сервер готовы поддерживать. Значение силы может быть одним из следующих:
"low""medium""high"
Если это свойство отсутствует, значение силы по умолчанию равно
"high,medium,low". Значение этой константы равно "javax.security.sasl.strength". - См. также:
- Значения константного поля
SERVER_AUTH
public static final String SERVER_AUTH
Имя свойства, которое определяет, должен ли сервер пройти аутентификацию для клиента. Свойство содержит "true" , если сервер должен пройти аутентификацию для клиента; "false" в противном случае. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.server.authentication".
- См. также:
- Значения константного поля
BOUND_SERVER_NAME
public static final String BOUND_SERVER_NAME
Имя свойства, которое определяет имя привязанного сервера для непривязанного сервера. Сервер создается как непривязанный сервер путём установки параметра serverName в методе createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler) в значение null. Свойство содержит имя привязанного хоста после завершения обмена аутентификацией. Оно доступно только со стороны сервера.
Значение этой константы равно "javax.security.sasl.bound.server.name".
- См. также:
- Значения константного поля
MAX_BUFFER
public static final String MAX_BUFFER
Имя свойства, которое определяет максимальный размер буфера приёма в байтах SaslClient/SaslServer. Свойство содержит строковое представление целого числа.
Если это свойство отсутствует, размер по умолчанию определяется механизмом.
Значение этой константы равно "javax.security.sasl.maxbuffer".
- См. также:
- Значения константного поля
RAW_SEND_SIZE
public static final String RAW_SEND_SIZE
Имя свойства, которое определяет максимальный размер буфера отправки в байтах SaslClient/SaslServer. Свойство содержит строковое представление целого числа. Значение этого свойства договариваются клиент и сервер во время обмена аутентификацией.
Значение этой константы равно "javax.security.sasl.rawsendsize".
- См. также:
- Значения константного поля
REUSE
public static final String REUSE
Имя свойства, которое определяет, следует ли повторно использовать ранее аутентифицированную сессионную информацию. Свойство содержит "true", если механизм реализации может попытаться повторно использовать ранее аутентифицированную сессионную информацию; оно содержит "false", если реализация не должна повторно использовать ранее аутентифицированную сессионную информацию. Значение "true" служит только подсказкой: это не обязательно означает фактическое повторное использование, поскольку повторное использование может быть невозможно по ряду причин, включая, но не ограничиваясь, отсутствием поддержки механизма повторного использования, истечением срока действия информации, подлежащей повторному использованию, и отказом пары в поддержке повторного использования. Значение свойства по умолчанию равно "false". Значение этой константы равно "javax.security.sasl.reuse". Обратите внимание, что все остальные параметры и свойства, необходимые для создания экземпляра клиента/сервера SASL, должны быть предоставлены независимо от того, было ли это свойство предоставлено. То есть вы не можете предоставить меньше информации в предвкушении повторного использования. Реализации механизмов, поддерживающие повторное использование, могут позволить настроить его реализацию, например, размер кэша, таймауты и критерии для возможности повторного использования. Такие настройки зависят от реализации.
- См. также:
- Значения константного поля
POLICY_NOPLAINTEXT
public static final String POLICY_NOPLAINTEXT
Имя свойства, которое определяет, разрешены ли механизмы, подверженные простым пассивным атакам с использованием открытого текста (например, "PLAIN"). Свойство содержит "true" , если такие механизмы не разрешены; "false" если такие механизмы разрешены. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.noplaintext".
- См. также:
- Значения константного поля
POLICY_NOACTIVE
public static final String POLICY_NOACTIVE
Имя свойства, которое определяет, разрешены ли механизмы, уязвимые для активных (несловарных) атак. Свойство содержит "true" , если механизмы, уязвимые для активных атак, не разрешены; "false" если такие механизмы разрешены. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.noactive".
- См. также:
- Значения константного поля
POLICY_NODICTIONARY
public static final String POLICY_NODICTIONARY
Имя свойства, которое определяет, разрешены ли механизмы, уязвимые для пассивных словарных атак. Свойство содержит "true" , если механизмы, уязвимые для словарных атак, не разрешены; "false" если такие механизмы разрешены. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.nodictionary".
- См. также:
- Значения константного поля
POLICY_NOANONYMOUS
public static final String POLICY_NOANONYMOUS
Имя свойства, которое определяет, разрешены ли механизмы, принимающие анонимный вход. Свойство содержит "true" , если механизмы, принимающие анонимный вход, не разрешены; "false" если такие механизмы разрешены. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.noanonymous".
- См. также:
- Значения константного поля
POLICY_FORWARD_SECRECY
public static final String POLICY_FORWARD_SECRECY
Имя свойства, которое определяет, требуются ли механизмы, реализующие сквозное шифрование между сессиями. Сквозное шифрование означает, что взлом одной сессии не предоставит автоматически информацию для взлома будущих сессий. Свойство содержит "true" , если механизмы, реализующие сквозное шифрование между сессиями, требуются; "false" если такие механизмы не требуются. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.forward".
- См. также:
- Значения константного поля
POLICY_PASS_CREDENTIALS
public static final String POLICY_PASS_CREDENTIALS
Имя свойства, которое определяет, требуются ли механизмы, передающие учетные данные клиента. Свойство содержит "true" , если механизмы, передающие учетные данные клиента, требуются; "false" если такие механизмы не требуются. Значение по умолчанию равно "false".
Значение этой константы равно "javax.security.sasl.policy.credentials".
- См. также:
- Значения константного поля
CREDENTIALS
public static final String CREDENTIALS
Имя свойства, которое определяет используемые учетные данные. Свойство содержит объект Java-учетных данных, специфичный для механизма. Реализации механизмов могут проверять значение этого свойства, чтобы определить, поддерживается ли им соответствующий класс. Свойство может использоваться для предоставления учетных данных механизму, поддерживающему делегированную аутентификацию.
Значение этой константы равно "javax.security.sasl.credentials".
- См. также:
- Значения константного поля
Методы
createSaslClient
public static SaslClient createSaslClient(String[] mechanisms,
String authorizationId,
String protocol,
String serverName,
Map<String,?> props,
CallbackHandler cbh)
throws SaslException Создает SaslClient с использованием предоставленных параметров. Этот метод использует фреймворк поставщиков безопасности JCA, описанный в "Спецификации и справке API архитектуры шифрования Java", для поиска и выбора реализации SaslClient. Сначала он получает упорядоченный список экземпляров SaslClientFactory от зарегистрированных поставщиков безопасности для службы "SaslClientFactory" и указанных механизмов SASL. Затем он вызывает createSaslClient() на каждом экземпляре фабрики в списке, пока один не произведёт непустой экземпляр SaslClient. Возвращает непустой экземпляр SaslClient, или null, если поиск не приводит к непустому экземпляру SaslClient.
Поставщик безопасности для SaslClientFactory регистрируется в фреймворке поставщиков безопасности JCA с ключами вида
SaslClientFactory.mechanism_name
и значениями, которые являются именами классов реализаций javax.security.sasl.SaslClientFactory. Например, поставщик, содержащий класс фабрики com.wiz.sasl.digest.ClientFactory, который поддерживает механизм "DIGEST-MD5", зарегистрирует в JCA следующую запись: SaslClientFactory.DIGEST-MD5 com.wiz.sasl.digest.ClientFactory
См. "Спецификацию и справку API архитектуры шифрования Java" для получения информации о том, как установить и настроить поставщиков услуг безопасности.
Если механизм указан в свойства безопасности jdk.sasl.disabledMechanisms, он будет проигнорирован и не будет использоваться.
- Параметры:
-
mechanisms- Непустой список имён механизмов, которые необходимо попробовать. Каждый из них — зарегистрированное IANA имя механизма SASL. (например, "GSSAPI", "CRAM-MD5"). -
authorizationId- Возможно пустое протокол-зависимое идентификационное имя, используемое для авторизации. Если null или пустое, сервер выводит идентификатор авторизации из учетных данных аутентификации клиента. При успешном завершении аутентификации SASL указанному субъекту предоставляется доступ. -
protocol- Непустое строковое имя протокола, для которого выполняется аутентификация (например, "ldap"). -
serverName- Непустое полное имя хоста сервера, к которому выполняется аутентификация. -
props- Возможно пустой набор свойств, используемых для выбора механизма SASL и настройки обмена аутентификации выбранного механизма. Например, еслиpropsсодержит свойствоSasl.POLICY_NOPLAINTEXTсо значением"true", выбранный механизм SASL не должен быть подвержен простым пассивным атакам. В дополнение к стандартным свойствам, объявленным в этом классе, могут быть включены другие, возможно, специфичные для механизма свойства. Свойства, не относящиеся к выбранному механизму, игнорируются, включая любые записи карты с ключами, не являющимися строками. -
cbh- Возможно пустой обработчик обратного вызова, используемый механизмами SASL для получения дополнительной информации от приложения/библиотеки для завершения аутентификации. Например, механизм SASL может потребовать идентификатор, пароль и область аутентификации от вызывающего кода. Идентификатор аутентификации запрашивается с помощьюNameCallback. Пароль запрашивается с помощьюPasswordCallback. Область запрашивается с помощьюRealmChoiceCallback, если существует список областей для выбора, и с помощьюRealmCallback, если область должна быть введена. - Возвращает:
- Возможный экземпляр
SaslClient, созданный с использованием предоставленных параметров. Если null, не удается найтиSaslClientFactory, который бы его создал. - Выбрасывает:
-
SaslException- Если не удается создатьSaslClientиз-за ошибки.
createSaslServer
public static SaslServer createSaslServer(String mechanism,
String protocol,
String serverName,
Map<String,?> props,
CallbackHandler cbh)
throws SaslException Создаёт SaslServer для указанного механизма. Этот метод использует фреймворк поставщиков безопасности JCA, описанный в "Спецификации и справке API архитектуры шифрования Java", для поиска и выбора реализации SaslServer . Сначала он получает упорядоченный список экземпляров SaslServerFactory от зарегистрированных поставщиков безопасности для службы "SaslServerFactory" и указанного механизма. Затем он вызывает createSaslServer() на каждом экземпляре фабрики в списке, пока один не произведёт непустой экземпляр SaslServer . Возвращает непустой экземпляр SaslServer , или null, если поиск не приводит к непустому экземпляру SaslServer .
Поставщик безопасности для SaslServerFactory регистрируется в фреймворке поставщиков безопасности JCA с ключами вида
SaslServerFactory.mechanism_name
и значениями, которые являются именами классов реализаций javax.security.sasl.SaslServerFactory. Например, поставщик, содержащий класс фабрики com.wiz.sasl.digest.ServerFactory, который поддерживает механизм "DIGEST-MD5", зарегистрирует в JCA следующую запись: SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory
См. "Спецификацию и справку API архитектуры шифрования Java" для получения информации о том, как установить и настроить поставщиков услуг безопасности.
Если mechanism перечислен в свойстве безопасности jdk.sasl.disabledMechanisms, оно будет проигнорировано, и этот метод вернёт null.
- Параметры:
-
mechanism- Непустое имя механизма. Должно быть зарегистрированным IANA именем механизма SASL. (например, "GSSAPI", "CRAM-MD5"). -
protocol- Непустое строковое имя протокола, для которого выполняется аутентификация (например, "ldap"). -
serverName- Полное имя хоста сервера или null, если сервер не привязан к какому-либо конкретному имени хоста. Если механизм не допускает сервер без привязки, будет брошено исключениеSaslException. -
props- Возможно пустой набор свойств, используемых для выбора механизма SASL и настройки обмена аутентификации выбранного механизма. Например, еслиpropsсодержит свойствоSasl.POLICY_NOPLAINTEXTсо значением"true", то выбранный механизм SASL не должен быть уязвим к простым пассивным атакам. В дополнение к стандартным свойствам, объявленным в этом классе, могут быть включены другие, возможно, специфичные для механизма свойства. Свойства, не относящиеся к выбранному механизму, игнорируются, включая любые записи карты с ключами, не являющимися строками. -
cbh- Возможно пустой обработчик обратного вызова, используемый механизмами SASL для получения дополнительной информации от приложения/библиотеки для завершения аутентификации. Например, механизм SASL может потребовать идентификатор, пароль и область аутентификации от вызывающего кода. Идентификатор аутентификации запрашивается с помощьюNameCallback. Пароль запрашивается с помощьюPasswordCallback. Область запрашивается с помощьюRealmChoiceCallback, если существует список областей для выбора, и с помощьюRealmCallback, если область должна быть введена. - Возвращает:
- Возможный экземпляр
SaslServer, созданный с использованием предоставленных параметров. Если null, не удается найтиSaslServerFactory, который бы его создал. - Выбрасывает:
-
SaslException- Если не удается создатьSaslServerиз-за ошибки.
getSaslClientFactories
public static Enumeration<SaslClientFactory> getSaslClientFactories()
Получает перечисление известных фабрик для создания SaslClient. Этот метод использует тот же алгоритм поиска фабрик, что и createSaslClient().
- Возвращает:
- Непустое перечисление известных фабрик для создания
SaslClient. - См. также:
createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)
getSaslServerFactories
public static Enumeration<SaslServerFactory> getSaslServerFactories()
Получает перечисление известных фабрик для создания SaslServer. Этот метод использует тот же алгоритм поиска фабрик, что и createSaslServer().
- Возвращает:
- Непустое перечисление известных фабрик для создания
SaslServer. - См. также:
createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)
© 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.