Spec-Zone.ru › OpenJDK 17

Интерфейс 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 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(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
Возвращает:
значение хэш-кода
См. также:
  • 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
Возвращает:
строку, представляющую это имя в печатном формате.

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, 2021, 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/17/docs/api/java.security.jgss/org/ietf/jgss/GSSName.html

Spec-Zone.ru

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