Интерфейс 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.Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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 с другим объектом, который может быть 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 - Возвращает:
- значение хэш-кода
- См. также:
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 для каждого имени из списка управления доступом могут быть значительными.
Экспортированные имена могут быть повторно импортированы с помощью фабричного метода байтового массива 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, 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