Интерфейс GSSName
public interface GSSName
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.- С:
- 1.4
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Oid |
NT_ANONYMOUS |
Тип имени для представления анонимной сущности. |
static final Oid |
NT_EXPORT_NAME |
Тип имени, используемый для обозначения экспортированного имени, полученного методом export. |
static final Oid |
NT_HOSTBASED_SERVICE |
Oid, указывающий форму имени сервиса на основе хоста. |
static final Oid |
NT_MACHINE_UID_NAME |
Тип имени для обозначения числового идентификатора пользователя, соответствующего пользователю в локальной системе. |
static final Oid |
NT_STRING_UID_NAME |
Тип имени для обозначения строки цифр, представляющей числовой идентификатор пользователя пользователя в локальной системе. |
static final Oid |
NT_USER_NAME |
Тип имени для обозначения именованного пользователя в локальной системе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
GSSName |
canonicalize |
Создает имя, канонизированное для определенного механизма. |
boolean |
equals |
Сравнивает этот объект GSSName с другим объектом Object, который может быть GSSName. |
boolean |
equals |
Сравнивает два объекта GSSName для определения, ссылаются ли они на одну и ту же сущность. |
byte[] |
export() |
Возвращает каноническое непрерывное байтовое представление имени механизма (MN), подходящее для прямого байтового сравнения функциями авторизации. |
Oid |
getStringNameType() |
Возвращает тип имени печатного представления этого имени, которое можно получить с помощью метода
toString. |
int |
hashCode() |
Возвращает значение хэш-кода для этого GSSName. |
boolean |
isAnonymous() |
Проверяет, представляет ли этот объект имени анонимную сущность. |
boolean |
isMN() |
Проверяет, представляет ли этот объект имени имя механизма (MN). |
String |
toString() |
Возвращает текстовое представление объекта GSSName. |
Подробное описание полей
NT_HOSTBASED_SERVICE
static final Oid NT_HOSTBASED_SERVICE
Оно представляет собой следующее значение 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
Оно представляет собой следующее значение 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и два имени ссылаются на одну и ту же сущность. - См. также:
hashCode
int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение hashCode
- См. также:
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
Экспортированное имя полезно при использовании в больших списках управления доступом, где избыточность создания объекта GSSName для каждого имени и вызова метода equals для каждого имени из ACL может быть чрезмерной.
Экспортированные имена можно повторно импортировать, используя фабричный метод массива байтов 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 - Возвращает:
- строку, представляющую это имя в печатном виде.
getStringNameType
Oid getStringNameType() throws GSSException
toString.- Возвращает:
- OID, представляющий пространство имен, возвращаемое методом toString.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
isAnonymous
boolean isAnonymous()
- Возвращает:
- true, если это анонимное имя, иначе false.
isMN
boolean isMN()
- Возвращает:
- true, если это MN, иначе false.
© 1993, 2023, 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/21/docs/api/java.security.jgss/org/ietf/jgss/GSSName.html