Класс ChannelBinding
public class ChannelBinding extends Object
Вызывающая сторона, инициализирующая защищённый контекст, должна определить соответствующие значения связывания канала, которые необходимо установить в объекте GSSContext. Приёмник должен предоставить идентичное связывание, чтобы проверить, что полученные токены обладают правильными характеристиками, связанными с каналом.
Использование связывания каналов в GSS-API является необязательным. ChannelBinding можно установить для GSSContext с помощью метода setChannelBinding перед первым вызовом initSecContext или acceptSecContext. Если метод setChannelBinding не был использован для установки ChannelBinding для объекта GSSContext, будет предположено null ChannelBinding.
Концептуально, GSS-API конкатенирует информацию об адресах инициатора и приёмника, а также массив байтов, предоставленный приложением, чтобы сформировать строку октетов. Механизм вычисляет MIC над этой строкой октетов и связывает MIC с токеном установления контекста, выпущенным методом initSecContext интерфейса GSSContext. Те же связывания устанавливаются приёмником контекста для его объекта GSSContext и во время обработки метода acceptSecContext MIC вычисляется аналогичным образом. Вычисленный MIC сравнивается с MIC, найденным в токен, и если MIC отличаются, accept бросит исключение GSSException с кодом основной ошибки, установленным в BAD_BINDINGS, и контекст не будет установлен. Некоторые механизмы могут включать фактические данные связывания канала в токене (а не только MIC); приложения, поэтому, не должны использовать конфиденциальные данные как компоненты связывания канала.
Отдельные механизмы могут наложить дополнительные ограничения на адреса, которые могут появляться в связываниях каналов. Например, механизм может проверить, что поле адреса инициатора в связывании канала содержит правильный сетевой адрес хост-системы. Поэтому портативные приложения должны убедиться, что они либо предоставляют правильную информацию для полей адреса, либо не устанавливают информацию об адресации.
- Since:
- 1.4
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ChannelBinding |
Создаёт объект ChannelBinding без какой-либо информации об адресе. |
ChannelBinding |
Создаёт объект ChannelBinding с предоставленной пользователем информацией об адресе и данных. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает два экземпляра ChannelBinding. |
InetAddress |
getAcceptorAddress() |
Получение адреса приёмника для данного связывания канала. |
byte[] |
getApplicationData() |
Получение данных, указанных приложением, для данного связывания канала. |
InetAddress |
getInitiatorAddress() |
Получение адреса инициатора для данного связывания канала. |
int |
hashCode() |
Возвращает значение хэш-кода для этого объекта ChannelBinding. |
Подробное описание конструкторов
ChannelBinding
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)
null значения могут быть использованы для любых полей, которые приложение не хочет указывать.- Параметры:
-
initAddr- адрес инициатора контекста.nullзначение может быть передано, чтобы указать, что приложение не хочет устанавливать это значение. -
acceptAddr- адрес приёмника контекста.nullзначение может быть передано, чтобы указать, что приложение не хочет устанавливать это значение. -
appData- данные, предоставленные приложением, которые будут использованы в качестве части связывания каналов.nullзначение может быть передано, чтобы указать, что приложение не хочет устанавливать это значение.
ChannelBinding
public ChannelBinding(byte[] appData)
- Параметры:
-
appData- данные, предоставленные приложением, которые будут использованы в качестве части связывания каналов.
Подробное описание методов
getInitiatorAddress
public InetAddress getInitiatorAddress()
- Возвращает:
- адрес инициатора.
nullвозвращается, если адрес не был установлен.
getAcceptorAddress
public InetAddress getAcceptorAddress()
- Возвращает:
- адрес приёмника. null возвращается, если адрес не был установлен.
getApplicationData
public byte[] getApplicationData()
- Возвращает:
- данные приложения, используемые как часть ChannelBinding.
nullвозвращается, если данные приложения не были указаны для связывания канала.
equals
public boolean equals(Object obj)
- Overrides:
-
equalsв классеObject - Параметры:
-
obj- другой ChannelBinding для сравнения с этим - Возвращает:
- true, если два ChannelBinding содержат одинаковые значения для адресов инициатора и приёмника, а также данные приложения.
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- значение hashCode
- См. также:
© 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/ChannelBinding.html