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