public final class KeyTab extends Object
Kerberos JAAS登录模块,得出长期密钥从keytab文件应该使用这类。登录模块将存储这类的实例设置一个Subject
在提交的认证过程相私人凭证。
如果一个KeyTab
对象从getUnboundInstance()
或getUnboundInstance(java.io.File)
获得,它是未绑定的,因此可以使用任何服务主体。否则,如果来自getInstance(KerberosPrincipal)
或getInstance(KerberosPrincipal, java.io.File)
获得,它是绑定到特定的服务主体,才能使用它。
请注意,构造函数getInstance()
和getInstance(java.io.File)
被创建时,不支持绑定的keytabs。这些方法不应该被使用了。一个对象的创建与上述方法是绑定到一个未知的主,这意味着,它的isBound()
返回true,getPrincipal()
返回null。
它可能被授予PrivateCredentialPermission
如果需要从主体访问keytab实例的应用程序是必要的。此权限时不需要的应用程序依赖于默认的jgss Kerberos认证机制来访问密钥表。然而在这种情况下,,应用程序将需要一个合适的ServicePermission
。
keytab文件格式描述 http://www.ioplex.com/utilities/keytab.txt。
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
指定对象与keytab平等的比较。
|
boolean |
exists()
检查keytab文件存在。
|
static KeyTab |
getInstance()
返回默认
KeyTab 实例绑定到一个未知的服务主体。
|
static KeyTab |
getInstance(File file)
返回一个
File 对象被绑定到一个未知的服务主体的
KeyTab 实例。
|
static KeyTab |
getInstance(KerberosPrincipal princ)
返回默认
KeyTab 实例绑定到指定的服务主体。
|
static KeyTab |
getInstance(KerberosPrincipal princ, File file)
返回一个
File 对象绑定到指定的服务主体的
KeyTab 实例。
|
KerberosKey[] |
getKeys(KerberosPrincipal principal)
返回新钥匙给Kerberos主要。
|
KerberosPrincipal |
getPrincipal()
返回服务主体这
KeyTab 对象绑定到。
|
static KeyTab |
getUnboundInstance()
返回默认绑定
KeyTab 实例。
|
static KeyTab |
getUnboundInstance(File file)
返回一个绑定
KeyTab 实例从一个
File 对象。
|
int |
hashCode()
返回此keytab hashCode。
|
boolean |
isBound()
返回如果keytab绑定到主
|
String |
toString()
返回对象的字符串表示形式。
|
public static KeyTab getInstance(File file)
File
对象被绑定到一个未知的服务主体的
KeyTab
实例。
这种方法的结果是不空的。这种方法只将返回KeyTab
对象文件,不读它。
开发商应该叫getInstance(KerberosPrincipal,File)
当绑定的服务主要是已知的。
file
- keytab
File
对象,必须不为空
NullPointerException
-如果
file
参数为null
public static KeyTab getUnboundInstance(File file)
KeyTab
实例从一个
File
对象。
这种方法的结果是不空的。这种方法只将返回KeyTab
对象文件,不读它。
file
- keytab
File
对象,必须不为空
NullPointerException
-如果文件参数为null
public static KeyTab getInstance(KerberosPrincipal princ, File file)
File
对象绑定到指定的服务主体的
KeyTab
实例。
这种方法的结果是不空的。这种方法只将返回KeyTab
对象文件,不读它。
princ
-绑定的服务主体,必须不为空
file
- keytab
File
对象,必须不为空
NullPointerException
-如果参数为空
public static KeyTab getInstance()
KeyTab
实例绑定到一个未知的服务主体。
这种方法的结果是不空的。这种方法只将对象返回KeyTab
缺省Keytab文件不读它。
开发商应该叫getInstance(KerberosPrincipal)
当绑定的服务主要是已知的。
public static KeyTab getUnboundInstance()
KeyTab
实例。
这种方法的结果是不空的。这种方法只将对象返回KeyTab
缺省Keytab文件不读它。
public static KeyTab getInstance(KerberosPrincipal princ)
KeyTab
实例绑定到指定的服务主体。
这种方法的结果是不空的。这种方法只将对象返回KeyTab
缺省Keytab文件不读它。
princ
-绑定的服务主体,必须不为空
NullPointerException
-如果
princ
是空的
public KerberosKey[] getKeys(KerberosPrincipal principal)
该方法的实施应确保返回的键匹配的keytab文件的最新内容。其结果是一个新创建的副本,可以修改由调用者无需修改keytab对象。打电话的人应该destroy
钥匙使用后的结果。
请注意,keytab文件后可以KeyTab
对象实例化时,其内容可能会随时间而改变了。因此,当应用程序需要使用键时,应用程序应该调用此方法。先前调用的任何以前的结果都可能会过期。
如果有任何错误(例如,I/O错误或格式错误)的keytab文件在阅读过程中,保存的结果应该返回。如果没有保存的结果(说,这是第一次这种方法被称为,或,所有以前的阅读尝试失败),一个空数组应该返回。这可以确保结果不会变在(可能慢)的keytab文件更新。
每次调用此方法和文件的阅读成功没有例外(比如I/O错误或文件格式错误),结果应保存principal
。实现也可以保存密钥的其他校长一样的keytab对象具有键如果方便。
任何不支持的关键阅读keytab忽视和不包括在结果。
如果这个keytab绑定到一个特定的主,另一主调用此方法将返回一个空数组。
principal
- Kerberos主体,必须不为空。
NullPointerException
-如果
principal
参数为null
SecurityException
-如果存在一个安全管理和读取keytab文件是不允许的
public boolean exists()
调用方可以使用的结果,以确定它是否应该回退到另一个机制来读取钥匙。
SecurityException
-如果存在一个安全管理和读取keytab文件是不允许的
public String toString()
Object
toString
方法返回一个字符串,“以文本方式表示”这个对象。其结果应该是一个简洁,但翔实的代表性,是一个容易阅读的人。建议所有子类都重写此方法。
Object
类的toString
方法返回一个包含该类的对象是一个实例的名称字符串的符号` @
',和符号进制表示的对象的哈希码。换句话说,此方法返回一个等于值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public int hashCode()
hashCode
方法重写,继承类
Object
KeyTab
hashcode()
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object other)
KeyTab
和两
KeyTab
实例是等价的。
equals
方法重写,继承类
Object
other
-对象比较
Object.hashCode()
,
HashMap
public KerberosPrincipal getPrincipal()
KeyTab
对象绑定到。返回
null
如果不是束缚。
请注意,使用构造函数创建一个对象绑定一些未知的主密钥表。在这种情况下,此方法也返回空。用户可以拨打isBound()
验证这种情况下。
public boolean isBound()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.