Spec-Zone.ru › OpenJDK 25

Интерфейс 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);

Начиная с:
1.4
См. также:
  • export()
  • equals(GSSName)
  • GSSManager.createName(String, Oid)
  • GSSManager.createName(String, Oid, Oid)
  • GSSManager.createName(byte[], Oid)

Краткое описание полей

Модификатор и тип Поле Описание
static final Oid NT_ANONYMOUS
Тип имени для представления анонимной сущности.
static final Oid NT_EXPORT_NAME
Тип имени, указывающий на экспортированное имя, созданное методом экспорта.
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(Oid mech)
Создает имя, канонизированное для определенного механизма.
boolean equals(Object another)
Сравнивает этот объект GSSName с другим объектом, который может быть GSSName.
boolean equals(GSSName another)
Сравнивает два объекта 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, указывающий на форму имени службы на основе хоста. Используется для представления служб, связанных с хост-компьютерами. Эта форма имени состоит из двух элементов — «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
Возвращает:
хеш-код этого GSSName
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(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 для каждого имени из 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
Возвращает:
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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.security.jgss/org/ietf/jgss/GSSName.html

Spec-Zone.ru

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