- java.lang.Object
-
- org.ietf.jgss.ChannelBinding
-
public class ChannelBinding extends Object
该类封装了主叫方提供的通道绑定信息的概念。 信道绑定用于加强在上下文建立期间提供对等实体认证的质量。 它们使GSS-API调用者将安全上下文的建立与地址或应用程序特定数据等相关特性绑定。发起安全上下文的调用者必须确定要在GSSContext对象中设置的适当通道绑定值。 接受者必须提供相同的绑定,以验证所接收的令牌具有正确的渠道相关特征。
通道绑定的使用在GSS-API中是可选的。 在首次拨打
initSecContext
或acceptSecContext
之前,可以使用27087373034635方法为GSSContext
设置ChannelBinding。 除非已使用setChannelBinding
方法设置GSSContext对象的ChannelBinding,null
将假定为ChannelBinding。从概念上讲,GSS-API将启动器和接收器地址信息以及应用程序提供的字节数组连接起来形成一个八位组字符串。 该机制计算该八位字节串上的MIC,并将MIC绑定到由
GSSContext
接口的initSecContext
方法发出的上下文建立令牌。 相同的绑定由上下文接受者为其GSSContext
对象设置,并且在acceptSecContext
方法的处理期间,以相同的方式计算MIC。 将计算的MIC与令牌中的MIC进行比较,如果MIC不同,则接受将抛出一个GSSException
,主代码设置为BAD_BINDINGS
,上下文将不会建立。 一些机制可以包括令牌中的实际信道绑定数据(而不仅仅是MIC); 因此,应用程序不应将机密数据用作通道绑定组件。个别机制可能对通道绑定中可能出现的地址施加额外的限制。 例如,机制可以验证信道绑定的发起者地址字段包含主机系统的正确网络地址。 因此,便携式应用程序应确保它们为地址字段提供正确的信息,或省略寻址信息的设置。
- 从以下版本开始:
- 1.4
-
-
构造方法摘要
构造方法 Constructor 描述 ChannelBinding(byte[] appData)
创建一个没有任何寻址信息的ChannelBinding对象。ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)
使用用户提供的地址信息和数据创建ChannelBinding对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
equals(Object obj)
比较两个ChannelBinding实例。InetAddress
getAcceptorAddress()
获取该通道绑定的接受者地址。byte[]
getApplicationData()
获取该通道绑定的应用程序指定的数据。InetAddress
getInitiatorAddress()
获取此通道绑定的启动器地址。int
hashCode()
返回此ChannelBinding对象的哈希码值。
-
-
-
构造方法详细信息
-
ChannelBinding
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)
使用用户提供的地址信息和数据创建ChannelBinding对象。null
值可用于应用程序不想指定的任何字段。- 参数
-
initAddr
- 上下文发起者的地址。 可以提供null
值来指示应用程序不想设置此值。 -
acceptAddr
- 上下文acceptAddr
的地址。 可以提供null
值来指示应用程序不想设置此值。 -
appData
- 应用程序提供的数据,用作通道绑定的一部分。 可以提供null
值来指示应用程序不想设置此值。
-
ChannelBinding
public ChannelBinding(byte[] appData)
创建一个没有任何寻址信息的ChannelBinding对象。- 参数
-
appData
- 应用程序提供的数据,用作通道绑定的一部分。
-
-
方法详细信息
-
getInitiatorAddress
public InetAddress getInitiatorAddress()
获取此通道绑定的启动器地址。- 结果
-
发起者的地址。
如果地址尚未设置,则返回
null
。
-
getAcceptorAddress
public InetAddress getAcceptorAddress()
获取该通道绑定的接受者地址。- 结果
- 受理人的地址。 如果还没有设置地址,则返回null。
-
getApplicationData
public byte[] getApplicationData()
获取该通道绑定的应用程序指定的数据。- 结果
-
应用程序数据被用作ChannelBinding的一部分。
如果没有为通道绑定指定应用程序数据,则返回
null
。
-
equals
public boolean equals(Object obj)
比较两个ChannelBinding实例。- 重写:
-
equals
在Object
类 - 参数
-
obj
- 另一个ChannelBinding来比较这个 - 结果
- 如果两个ChannelBinding包含与启动器和接收器地址以及应用程序数据相同的值,则为true。
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此ChannelBinding对象的哈希码值。- 重写:
-
hashCode
在Object
- 结果
- 一个hashCode值
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-