- java.lang.Object
-
- org.ietf.jgss.ChannelBinding
-
public class ChannelBindingextends Object
该类封装了调用者提供的通道绑定信息的概念。 通道绑定用于增强在上下文建立期间提供对等实体认证的质量。 它们使GSS-API调用程序能够将安全上下文的建立绑定到相关特性(如地址或特定于应用程序的数据)。启动安全上下文的调用者必须确定要在GSSContext对象中设置的适当通道绑定值。 接受者必须提供相同的绑定,以验证收到的令牌是否具有正确的通道相关特征。
在GSS-API中使用通道绑定是可选的。 在第一次调用
initSecContext
或acceptSecContext
之前,可以使用setChannelBinding
方法为GSSContext
设置ChannelBinding。 除非已使用setChannelBinding
方法为GSSContext对象设置ChannelBinding,null
将假定为ChannelBinding(null
。从概念上讲,GSS-API连接发起者和接受者地址信息,以及应用程序提供的字节数组以形成八位字符串。 该机制计算该八位字节串的MIC,并将MIC绑定到
GSSContext
接口的initSecContext
方法发出的上下文建立令牌。 对于其GSSContext
对象,上下文接受器设置相同的绑定,并且在处理acceptSecContext
方法期间,以相同的方式计算MIC。 将计算出的MIC与令牌中的MIC进行比较,如果MIC不同,则接受将抛出GSSException
,主代码设置为BAD_BINDINGS
,并且不会建立上下文。 一些机制可能包括令牌中的实际通道绑定数据(而不仅仅是MIC); 因此,应用程序不应将机密数据用作通道绑定组件。各个机制可能会对可能出现在通道绑定中的地址施加额外的约束。 例如,机制可以验证信道绑定的发起者地址字段包含主机系统的正确网络地址。 因此,便携式应用程序应确保它们为地址字段提供正确的信息,或省略寻址信息的设置。
- 从以下版本开始:
- 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对象的哈希码值。
-
-
-
构造方法详细信息
-
ChannelBinding
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, byte[] appData)
使用用户提供的地址信息和数据创建ChannelBinding对象。null
值可用于应用程序不想指定的任何字段。- 参数
-
initAddr
- 上下文启动器的地址。 可以提供null
值以指示应用程序不想设置此值。 -
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)
-
-