Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface SaslServer
Сервер такой сервер LDAP приводит экземпляр в порядок этого класса, чтобы выполнить аутентификацию, определенную определенным механизмом SASL. Вызов методов на экземпляре SaslServer генерирует проблемы согласно механизму SASL, реализованному SaslServer. Поскольку аутентификация продолжается, экземпляр инкапсулирует состояние обмена аутентификации сервера SASL.
Вот пример того, как сервер LDAP мог бы использовать SaslServer. Это сначала получает экземпляр SaslServer для механизма SASL, который требует клиент:
Это может тогда продолжиться, чтобы использовать сервер для аутентификации. Например, предположите сервер LDAP, полученный запрос BIND LDAP, содержащий имя механизма SASL и (дополнительного) начального ответа. Это тогда могло бы использовать сервер следующим образом:SaslServer ss = Sasl.createSaslServer(mechanism, "ldap", myFQDN, props, callbackHandler);
while (!ss.isComplete()) { try { byte[] challenge = ss.evaluateResponse(response); if (ss.isComplete()) { status = ldap.sendBindResponse(mechanism, challenge, SUCCESS); } else { status = ldap.sendBindResponse(mechanism, challenge, SASL_BIND_IN_PROGRESS); response = ldap.readBindRequest(); } } catch (SaslException e) { status = ldap.sendErrorResponse(e); break; } } if (ss.isComplete() && status == SUCCESS) { String qop = (String) sc.getNegotiatedProperty(Sasl.QOP); if (qop != null && (qop.equalsIgnoreCase("auth-int") || qop.equalsIgnoreCase("auth-conf"))) { // Use SaslServer.wrap() and SaslServer.unwrap() for future // communication with client ldap.in = new SecureInputStream(ss, ldap.in); ldap.out = new SecureOutputStream(ss, ldap.out); } }
Sasl
, SaslServerFactory
Модификатор и Тип | Метод и Описание |
---|---|
void |
dispose()
Избавляется от любых системных ресурсов или уязвимой информации безопасности, которую мог бы использовать SaslServer.
|
byte[] |
evaluateResponse(byte[] response)
Оценивает данные ответа и генерирует проблему.
|
Строка |
getAuthorizationID()
Сообщает ID авторизации в действительности для клиента этого сеанса.
|
Строка |
getMechanismName()
Возвращает зарегистрированное в IANA имя механизма этого сервера SASL.
|
Объект |
getNegotiatedProperty(String propName)
Получает согласованное свойство.
|
boolean |
isComplete()
Определяет, завершился ли обмен аутентификации.
|
byte[] |
unwrap(byte[] incoming, int offset, int len)
Разворачивает байтовый массив, полученный от клиента.
|
byte[] |
wrap(byte[] outgoing, int offset, int len)
Обертывает байтовый массив, который будет отправлен клиенту.
|
String getMechanismName()
byte[] evaluateResponse(byte[] response) throws SaslException
response
- Ненуль (но возможно пустой) ответ передался клиентом.SaslException
- Если ошибка произошла, обрабатывая ответ или генерируя проблему.boolean isComplete()
String getAuthorizationID()
IllegalStateException
- если этот сеанс аутентификации не завершилсяbyte[] unwrap(byte[] incoming, int offset, int len) throws SaslException
incoming является содержанием буфера SASL как определено в RFC 2222 без продвижения четырех полей октета, которые представляют длину. offset и len определяют часть incoming, чтобы использовать.
incoming
- Ненулевой байтовый массив, содержащий закодированные байты от клиента.offset
- Стартовая позиция в incoming байтов, чтобы использовать.len
- Число байтов от incoming, чтобы использовать.SaslException
- если incoming не может быть успешно развернут.IllegalStateException
- если обмен аутентификации не завершился, или если у согласованного качества защиты нет ни целостности, ни конфиденциальностиbyte[] wrap(byte[] outgoing, int offset, int len) throws SaslException
Результат этого метода составит содержание буфера SASL как определено в RFC 2222 без продвижения четырех полей октета, которые представляют длину. offset и len определяют часть outgoing, чтобы использовать.
outgoing
- Ненулевой байтовый массив, содержащий байты, чтобы закодировать.offset
- Стартовая позиция в outgoing байтов, чтобы использовать.len
- Число байтов от outgoing, чтобы использовать.SaslException
- если outgoing не может быть успешно обернут.IllegalStateException
- если обмен аутентификации не завершился, или если у согласованного качества защиты нет ни целостности, ни конфиденциальности.Object getNegotiatedProperty(String propName)
propName
- свойствоIllegalStateException
- если этот обмен аутентификации не завершилсяvoid dispose() throws SaslException
SaslException
- Если с проблемой встретились, располагая ресурсы.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.