Класс 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, 2023, 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/21/docs/api/java.security.jgss/org/ietf/jgss/ChannelBinding.html