Класс ChannelBinding
- java.lang.Object
-
- org.ietf.jgss.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