Интерфейс GSSName
public interface GSSName
Этот интерфейс инкапсулирует один GSS-API сущность принципала. Приложение получает реализацию этого интерфейса через один из createName методов, существующих в классе GSSManager. По сути, GSSName содержит множество представлений сущности или множество элементов примитивного имени, по одному для каждого поддерживаемого базового механизма. В терминологии GSS, GSSName, содержащий элемент только одного механизма, называется Именем Механизма (MN).
Поскольку различные механизмы аутентификации могут использовать различные пространства имён для идентификации своих принципалов, поддержка имён GSS-API неизбежно сложна в многомеханических средах (или даже в некоторых одномеханических средах, где базовый механизм поддерживает несколько пространств имён). Разные форматы имён и их определения идентифицируются с помощью Oid's, и в этом интерфейсе определены некоторые стандартные типы. Формат имён может быть выведен на основе уникального Oid типа имени.
Ниже приведены примеры кода, использующие интерфейс GSSName. Приведенный ниже код создаёт GSSName, преобразует его в MN, выполняет сравнение, получает удобочитаемое представление имени, экспортирует его в массив байтов и затем повторно импортирует, чтобы получить новое GSSName.
GSSManager manager = GSSManager.getInstance();
// create a host based service name
GSSName name = manager.createName("service@host",
GSSName.NT_HOSTBASED_SERVICE);
Oid krb5 = new Oid("1.2.840.113554.1.2.2");
GSSName mechName = name.canonicalize(krb5);
// the above two steps are equivalent to the following
GSSName mechName = manager.createName("service@host",
GSSName.NT_HOSTBASED_SERVICE, krb5);
// perform name comparison
if (name.equals(mechName))
print("Names are equals.");
// obtain textual representation of name and its printable
// name type
print(mechName.toString() +
mechName.getStringNameType().toString());
// export and re-import the name
byte [] exportName = mechName.export();
// create a new name object from the exported buffer
GSSName newName = manager.createName(exportName,
GSSName.NT_EXPORT_NAME); Если установлен менеджер безопасности, для создания GSSName, содержащего элемент имени Kerberos без предоставления его домена, необходимо предоставить разрешение ServicePermission, и основной принцип службы разрешения должен находиться как минимум внутри домена элемента имени Kerberos. Например, если результат createName("user", NT_USER_NAME) содержит элемент имени Kerberos user@EXAMPLE.COM, то необходимо предоставить разрешение ServicePermission с основным принципалом службы host/www.example.com@EXAMPLE.COM (и любыми действиями). В противном случае, создание вызовет GSSException, содержащий код ошибки GSSException.FAILURE.- Since:
- 1.4
- См. также:
-
export(),equals(GSSName),GSSManager.createName(String, Oid),GSSManager.createName(String, Oid, Oid),GSSManager.createName(byte[], Oid)
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static Oid | NT_ANONYMOUS | Тип имени для представления анонимной сущности. |
static Oid | NT_EXPORT_NAME | Тип имени, используемый для обозначения экспортированного имени, созданного методом export. |
static Oid | NT_HOSTBASED_SERVICE | Oid, указывающий форму имени службы на основе хоста. |
static Oid | NT_MACHINE_UID_NAME | Тип имени для обозначения числового идентификатора пользователя, соответствующего пользователю в локальной системе. |
static Oid | NT_STRING_UID_NAME | Тип имени для обозначения строки цифр, представляющей числовой идентификатор пользователя пользователя в локальной системе. |
static Oid | NT_USER_NAME | Тип имени для обозначения именованного пользователя в локальной системе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
GSSName | canonicalize(Oid mech) | Создаёт имя, канонизированное для некоторого механизма. |
boolean | equals(Object another) | Сравнивает этот объект |
boolean | equals(GSSName another) | Сравнивает два объекта |
byte[] | export() | Возвращает каноническое непрерывное байтовое представление имени механизма (MN), подходящее для прямого байтового сравнения функциями авторизации. |
Oid | getStringNameType() | Возвращает тип имени для удобочитаемого представления этого имени, которое можно получить из метода |
int | hashCode() | Возвращает значение хэш-кода для этого GSSName. |
boolean | isAnonymous() | Проверяет, представляет ли этот объект имени анонимную сущность. |
boolean | isMN() | Проверяет, представляет ли этот объект имени Имя Механизма (MN). |
String | toString() | Возвращает текстовое представление объекта |
Поля
NT_HOSTBASED_SERVICE
static final Oid NT_HOSTBASED_SERVICE
Oid, указывающий на форму имени хост-службы. Используется для представления служб, связанных с хост-компьютерами. Эта форма имени формируется с использованием двух элементов: «service» и «hostname», следующим образом: service@hostname.
Представляет следующее значение Oid:
{ iso(1) member-body(2) United
States(840) mit(113554) infosys(1) gssapi(2) generic(1) service_name(4)
}
NT_USER_NAME
static final Oid NT_USER_NAME
Тип имени для указания именованного пользователя в локальной системе.
Представляет следующее значение Oid:
{ iso(1) member-body(2) United
States(840) mit(113554) infosys(1) gssapi(2) generic(1) user_name(1)
}
NT_MACHINE_UID_NAME
static final Oid NT_MACHINE_UID_NAME
Тип имени, указывающий на числовой идентификатор пользователя, соответствующий пользователю в локальной системе (например, Uid).
Представляет следующее значение Oid:
{ iso(1) member-body(2) United States(840) mit(113554)
infosys(1) gssapi(2) generic(1) machine_uid_name(2) }
NT_STRING_UID_NAME
static final Oid NT_STRING_UID_NAME
Тип имени, указывающий на строку цифр, представляющую числовой идентификатор пользователя в локальной системе.
Представляет следующее значение Oid:
{ iso(1) member-body(2) United
States(840) mit(113554) infosys(1) gssapi(2) generic(1)
string_uid_name(3) }
NT_ANONYMOUS
static final Oid NT_ANONYMOUS
Тип имени для представления анонимного объекта.
Представляет следующее значение Oid:
{ 1(iso), 3(org), 6(dod), 1(internet),
5(security), 6(nametypes), 3(gss-anonymous-name) }
NT_EXPORT_NAME
static final Oid NT_EXPORT_NAME
Тип имени, используемый для указания экспортированного имени, созданного методом экспорта.
Представляет следующее значение Oid:
{ 1(iso),
3(org), 6(dod), 1(internet), 5(security), 6(nametypes),
4(gss-api-exported-name) }
Методы
equals
boolean equals(GSSName another)
throws GSSException Сравнивает два объекта GSSName для определения, ссылаются ли они на один и тот же объект.
- Параметры:
-
another- объектGSSNameдля сравнения с этим именем - Возвращает:
- true, если два имени содержат хотя бы один общий примитивный элемент. Если ни одно из имен не представляет анонимный объект, метод вернёт false.
- Исключения:
-
GSSException- если имена не могут быть сравнены, содержащие следующие основные коды ошибок:GSSException.BAD_NAMETYPE,GSSException.FAILURE
equals
boolean equals(Object another)
Сравнивает этот объект GSSName с другим объектом, который может быть GSSName. Поведение идентично поведению в equals, за исключением того, что GSSException не выбрасывается; вместо этого в ситуации ошибки возвращается false.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
another- объект для сравнения с этим именем - Возвращает:
- true, если сравниваемый объект также является
GSSNameи оба имени ссылаются на один и тот же объект. - См. также:
equals(GSSName)
hashCode
int hashCode()
Возвращает хэш-код для этого GSSName.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
canonicalize
GSSName canonicalize(Oid mech)
throws GSSException Создаёт имя, канонизированное для некоторого механизма.
- Параметры:
-
mech- oid для механизма, для которого запрашивается каноническая форма имени. - Возвращает:
- объект
GSSName, содержащий только один примитивный элемент, представляющий это имя в канонической форме для требуемого механизма. - Исключения:
-
GSSException- содержащие следующие основные коды ошибок:GSSException.BAD_MECH,GSSException.BAD_NAMETYPE,GSSException.BAD_NAME,GSSException.FAILURE
export
byte[] export()
throws GSSException Возвращает каноническое непрерывное байтовое представление имени механизма (MN), подходящее для прямого байтового сравнения функциями авторизации. Если имя не является MN, реализации могут выбросить GSSException с кодом состояния NAME_NOT_MN. Если реализация выбирает не выбросить исключение, она должна использовать какой-либо механизм по умолчанию, специфичный для системы, для канонизации имени и затем его экспорта. Структурно, объект экспортированного имени состоит из заголовка, содержащего OID, идентифицирующего механизм, который аутентифицировал имя, и трейлера, содержащего само имя, где синтаксис трейлера определяется спецификацией каждого механизма. Формат заголовка выходного буфера указан в RFC 2743.
Экспортированное имя полезно при использовании в больших списках управления доступом, где накладные расходы на создание объекта GSSName для каждого имени и вызов метода equals для каждого имени из списка управления доступом могут быть значительными.
Экспортированные имена можно повторно импортировать, используя метод фабрики массивов байтов GSSManager.createName и указание NT_EXPORT_NAME как идентификатора объекта типа имени. Результирующее имя GSSName также будет MN.
- Возвращает:
- массив байтов byte[], содержащий экспортированное имя. RFC 2743 определяет "Формат механически независимого экспортированного объекта имени" для этих байтов.
- Исключения:
-
GSSException- содержащие следующие основные коды ошибок:GSSException.BAD_NAME,GSSException.BAD_NAMETYPE,GSSException.FAILURE
toString
String toString()
Возвращает текстовое представление объекта GSSName. Для получения отформатированного имени, которое определяет синтаксис возвращаемой строки, используйте метод getStringNameType.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строку String, представляющую это имя в удобочитаемой форме.
getStringNameType
Oid getStringNameType()
throws GSSException Возвращает тип имени печатаемого представления этого имени, который можно получить из метода
toString.
- Возвращает:
- Oid, представляющий пространство имён имени, возвращаемого методом toString.
- Исключения:
-
GSSException- содержащие следующие основные коды ошибок:GSSException.FAILURE
isAnonymous
boolean isAnonymous()
Проверяет, представляет ли этот объект имени анонимный объект.
- Возвращает:
- true, если это анонимное имя, иначе false.
isMN
boolean isMN()
Проверяет, представляет ли этот объект имени имя механизма (MN). MN — это GSSName, содержащий ровно один примитивный элемент имени механизма.
- Возвращает:
- true, если это MN, иначе false.
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.security.jgss/org/ietf/jgss/GSSName.html