javax.security.auth.kerberos

java.lang.Object
  继承者 javax.security.auth.kerberos.KerberosKey
所有已实现的接口:
Serializable, Key, SecretKey, Destroyable

public class KerberosKey
     
extends Object
implements SecretKey, Destroyable

此类为 Kerberos 主体封装一个长期秘密密钥。

获取主体的密码和从主体生成秘密密钥的所有 Kerberos JAAS 登录模块都应该使用此类。在任何可以使用的地方,登录模块甚至可以直接从 Kerberos "keytab" 读取此秘密密钥。有时,例如在没有用户到用户 (user-to-user) 验证的情况下对服务器进行验证时,在验证过程的提交阶段,登录模块将在 Subject 的私有证书集中存储此类的实例。

如果应用程序需要从 Subject 访问 KerberosKey 实例,可能必须授予应用程序 PrivateCredentialPermission 权限。当应用程序依靠默认的 JGSS Kerberos 机制去访问 KerberosKey 时,不需要此权限。但在这种情况下,应用程序将需要适当的 ServicePermission 权限。

从以下版本开始:
1.4
另请参见:
序列化表格

构造方法摘要
KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)
          当已知密钥类型和密钥版本号时,根据给出的字节构造 KerberosKey。
KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)
          根据主体的密码构造 KerberosKey。
 
方法摘要
 void destroy()
          销毁此密钥。
 boolean equals(Object other)
          比较指定 Object 与此 KerberosKey 的相等性。
 String getAlgorithm()
          返回此密钥的标准算法名称。
 byte[] getEncoded()
          返回秘密密钥的密钥材料。
 String getFormat()
          返回此秘密密钥的编码格式的名称。
 int getKeyType()
          返回此长期密钥的密钥类型。
 KerberosPrincipal getPrincipal()
          返回此密钥所属的主体。
 int getVersionNumber()
          返回密钥版本号。
 int hashCode()
          返回此 KerberosKey 的哈希码。
 boolean isDestroyed()
          确定此密钥是否已经销毁。
 String toString()
          返回该对象的字符串表示。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

KerberosKey

public KerberosKey(KerberosPrincipal principal,
                   byte[] keyBytes,
                   int keyType,
                   int versionNum)
当已知密钥类型和密钥版本号时,根据给出的字节构造 KerberosKey。当从 Kerberos "keytab" 读取秘密密钥信息时,可以使用此 KerberosKey。

参数:
principal - 此秘密密钥所属的主体
keyBytes - 秘密密钥的原始字节
keyType - 秘密密钥的密钥类型,由 Kerberos 协议规范定义。
versionNum - 此秘密密钥的版本号。

KerberosKey

public KerberosKey(KerberosPrincipal principal,
                   char[] password,
                   String algorithm)
根据主体的密码构造 KerberosKey。

参数:
principal - 此密码所属的主体
password - 应该用于计算密钥的密码
algorithm - 此密钥将使用的算法的名称。在假定默认算法为 "DES" 的情况下此参数可以为 null。
抛出:
IllegalArgumentException - 如果不支持传递的算法名称。
方法详细信息

getPrincipal

public final KerberosPrincipal getPrincipal()
返回此密钥所属的主体。

返回:
此密钥所属的主体。

getVersionNumber

public final int getVersionNumber()
返回密钥版本号。

返回:
密钥版本号。

getKeyType

public final int getKeyType()
返回此长期密钥的密钥类型。

返回:
密钥类型。

getAlgorithm

public final String getAlgorithm()
返回此密钥的标准算法名称。例如,"DES" 指示此密钥是一个 DES 密钥。有关标准算法名称的信息,请参阅 Java Cryptography Architecture API Specification & Reference 中的附录 A。 与此密钥有关联的算法的名称。

指定者:
接口 Key 中的 getAlgorithm
返回:
与此密钥关联的算法名称。

getFormat

public final String getFormat()
返回此秘密密钥的编码格式的名称。

指定者:
接口 Key 中的 getFormat
返回:
字符串 "RAW"。

getEncoded

public final byte[] getEncoded()
返回秘密密钥的密钥材料。

指定者:
接口 Key 中的 getEncoded
返回:
密钥材料。

destroy

public void destroy()
             throws DestroyFailedException
销毁此密钥。销毁密钥后对此密钥其他任何方法的调用将导致抛出 IllegalStateException。

指定者:
接口 Destroyable 中的 destroy
抛出:
DestroyFailedException - 如果销毁密钥时出现一些错误。

isDestroyed

public boolean isDestroyed()
确定此密钥是否已经销毁。

指定者:
接口 Destroyable 中的 isDestroyed
返回:
如果此 Object 已经销毁,则返回 true;否则,返回 false。

toString

public String toString()
从类 Object 复制的描述
返回该对象的字符串表示。通常, toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())
 

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。

hashCode

public int hashCode()
返回此 KerberosKey 的哈希码。

覆盖:
Object 中的 hashCode
返回:
KerberosKey 的 hashCode()
从以下版本开始:
1.6
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object other)
比较指定 Object 与此 KerberosKey 的相等性。如果给定对象也是 KerberosKey 并且两个 KerberosKey 实例相等,则返回 true。

覆盖:
Object 中的 equals
参数:
other - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable