Класс ChannelBinding

public class ChannelBinding
extends Object

Этот класс инкапсулирует понятие информации о привязке канала, предоставленной вызывающей стороной. Привязки каналов используются для повышения качества проверки подлинности peer-сущности во время создания контекста. Они позволяют вызывающим сторонам GSS-API привязать создание контекста безопасности к соответствующим характеристикам, таким как адреса или данные, специфичные для приложения.

Вызывающая сторона, инициирующая контекст безопасности, должна определить соответствующие значения привязки канала, которые необходимо установить в объекте GSSContext. Приемник должен предоставить идентичную привязку, чтобы проверить, что полученные токены обладают правильными характеристиками, связанными с каналом.

Использование привязок каналов в GSS-API является необязательным. ChannelBinding может быть установлен для GSSContext с использованием метода setChannelBinding до первого вызова initSecContext или acceptSecContext. Если метод setChannelBinding не использовался для установки ChannelBinding для объекта GSSContext, будет предполагаться null ChannelBinding.

Концептуально, GSS-API конкатенирует информацию об адресе инициатора и приемника, а также предоставленный приложением массив байтов, чтобы сформировать строку байтов. Механизм вычисляет MIC по этой строке байтов и привязывает MIC к токену создания контекста, выпущенному методом initSecContext интерфейса GSSContext. Те же привязки устанавливаются приемником контекста для его объекта GSSContext и при обработке метода acceptSecContext, MIC вычисляется аналогичным образом. Вычисленный MIC сравнивается с тем, который найден в токене, и если MIC различаются, accept выбросит GSSException с кодом major, установленным в BAD_BINDINGS, и контекст не будет создан. Некоторые механизмы могут включать фактические данные привязки канала в токен (а не только MIC); поэтому приложения не должны использовать конфиденциальные данные в качестве компонентов привязки канала.

Отдельные механизмы могут наложить дополнительные ограничения на адреса, которые могут появиться в привязках каналов. Например, механизм может проверить, что поле адреса инициатора в привязке канала содержит правильный сетевой адрес хост-системы. Поэтому портативные приложения должны гарантировать, что они либо предоставляют правильную информацию для полей адреса, либо не устанавливают информацию об адресах.

Since:
1.4

Конструкторы

Конструктор Описание
ChannelBinding​(byte[] appData)

Создает объект ChannelBinding без какой-либо информации об адресах.

ChannelBinding​(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)

Создает объект ChannelBinding с информацией об адресе и данных, предоставленных пользователем.

Методы

Модификатор и тип Метод Описание
boolean equals​(Object obj)

Сравнивает две инстанции ChannelBinding.

InetAddress getAcceptorAddress()

Получить адрес приемника для данной привязки канала.

byte[] getApplicationData()

Получить данные, указанные приложением, для данной привязки канала.

InetAddress getInitiatorAddress()

Получить адрес инициатора для данной привязки канала.

int hashCode()

Возвращает значение хэш-кода для данного объекта ChannelBinding.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Конструкторы

ChannelBinding

public ChannelBinding(InetAddress initAddr,
                      InetAddress acceptAddr,
                      byte[] appData)

Создает объект ChannelBinding с информацией об адресе и данных, предоставленных пользователем. null значения могут использоваться для любых полей, которые приложение не хочет указывать.

Parameters:
initAddr - адрес инициатора контекста. null значение может быть предоставлено для указания, что приложение не хочет устанавливать это значение.
acceptAddr - адрес приемника контекста. null значение может быть предоставлено для указания, что приложение не хочет устанавливать это значение.
appData - данные, предоставленные приложением, которые будут использоваться в качестве части привязок канала. null значение может быть предоставлено для указания, что приложение не хочет устанавливать это значение.

ChannelBinding

public ChannelBinding(byte[] appData)

Создает объект ChannelBinding без какой-либо информации об адресах.

Parameters:
appData - данные, предоставленные приложением, которые будут использоваться в качестве части привязок канала.

Методы

getInitiatorAddress

public InetAddress getInitiatorAddress()

Получить адрес инициатора для данной привязки канала.

Returns:
адрес инициатора. null возвращается, если адрес не установлен.

getAcceptorAddress

public InetAddress getAcceptorAddress()

Получить адрес приемника для данной привязки канала.

Returns:
адрес приемника. null возвращается, если адрес не установлен.

getApplicationData

public byte[] getApplicationData()

Получить данные, указанные приложением, для данной привязки канала.

Returns:
данные приложения, используемые в качестве части ChannelBinding. null возвращается, если данные приложения не были указаны для привязки канала.

equals

public boolean equals(Object obj)

Сравнивает две инстанции ChannelBinding.

Overrides:
equals в классе Object
Parameters:
obj - другой ChannelBinding для сравнения с данным
Returns:
true, если два ChannelBinding содержат одинаковые значения для адресов инициатора и приемника и данных приложения.
See Also:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает значение хэш-кода для данного объекта ChannelBinding.

Overrides:
hashCode в классе Object
Returns:
значение hashCode
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 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/ChannelBinding.html

Spec-Zone .ru
спецификации, руководства, описания, API