public class KerberosKey extends Object implements SecretKey, Destroyable
获取主体密码并从中生成密钥的所有Kerberos JAAS登录模块都应该使用此类。 有时,例如在没有用户到用户认证的情况下认证服务器时,登录模块将在认证过程的提交阶段期间将该类的实例存储在Subject
的私有证书集中。
使用密钥表读取密钥的Kerberos服务应使用KeyTab
类,在需要时可以读取最新的密钥。
如果应用程序需要从主题访问KerberosKey实例,可能需要授予应用程序PrivateCredentialPermission
。 当应用程序依赖于默认的JGSS Kerberos机制来访问KerberosKey时,不需要此权限。 然而,在这种情况下,应用程序将需要适当的ServicePermission
。
Constructor and Description |
---|
KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
当密钥类型和密钥版本号已知时,从给定字节构造KerberosKey。
|
KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
从主体的密码构造一个KerberosKey。
|
Modifier and Type | Method and Description |
---|---|
void |
destroy()
破坏这个关键
|
boolean |
equals(Object other)
将指定的对象与此KerberosKey进行比较以获得相等性。
|
String |
getAlgorithm()
返回此键的标准算法名称。
|
byte[] |
getEncoded()
返回此密钥的密钥材料。
|
String |
getFormat()
返回此密钥的编码格式的名称。
|
int |
getKeyType()
返回此长期密钥的密钥类型。
|
KerberosPrincipal |
getPrincipal()
返回此密钥所属的主体。
|
int |
getVersionNumber()
返回密钥版本号。
|
int |
hashCode()
返回此KerberosKey的哈希码。
|
boolean |
isDestroyed()
确定此密钥是否已被销毁。
|
String |
toString()
返回对象的字符串表示形式。
|
public KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
principal
- 该密钥属于的主体
keyBytes
- 秘密密钥的原始字节
keyType
- 由Kerberos协议规范定义的密钥的密钥类型。
versionNum
- 此秘密密钥的版本号
public KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
principal
- 该密码所属的主体
password
- 用于计算密钥的密码
algorithm
- 此密钥将被用于的算法的名称。
该参数可能为null,在这种情况下,将假定默认算法“DES”。
IllegalArgumentException
- 如果传递的算法的名称不受支持。
public final KerberosPrincipal getPrincipal()
public final int getVersionNumber()
public final int getKeyType()
public final String getAlgorithm()
getAlgorithm
在界面
Key
public final byte[] getEncoded()
getEncoded
在界面
Key
public void destroy() throws DestroyFailedException
destroy
在界面
Destroyable
DestroyFailedException
- 如果在破坏此密钥时出现某些错误。
public boolean isDestroyed()
isDestroyed
在界面
Destroyable
Object
被销毁,则为true,否则为false。
public String toString()
Object
复制
toString
方法返回一个“textually代表”这个对象的字符串。
结果应该是一个简明扼要的表达,容易让人阅读。
建议所有子类覆盖此方法。
该toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public int hashCode()
hashCode
在类别
Object
KerberosKey
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object other)
KerberosKey
,并且两个KerberosKey
实例是等价的,则返回true。
equals
在类别
Object
other
- 要比较的对象
Object.hashCode()
, HashMap