563 lines
29 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.security.auth.kerberos
</div>
<h2 class="title" title="Class KeyTab">Class KeyTab</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.security.auth.kerberos.KeyTab</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public final class <span class="typeNameLabel">KeyTab</span>
extends <a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>这个类封装了一个keytab文件。</span>
<p> <span>从keytab文件获取长期密钥的Kerberos JAAS登录模块应该使用此类。</span> <span>登录模块将在<a href="../../../../javax/security/auth/Subject.html" title="javax.security.auth中的类">验证</a>过程的提交阶段将该类的实例存储在<code>Subject</code>的私有凭证集中。</span> </p>
<p> <span>如果<code>KeyTab</code>对象从<a href="../../../../javax/security/auth/kerberos/KeyTab.html#getUnboundInstance--"><code>getUnboundInstance()</code></a><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getUnboundInstance-java.io.File-"><code>getUnboundInstance(java.io.File)</code></a>获得,则它是未绑定的,因此可以由任何服务主体使用。</span> <span>否则,如果从<a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-"><code>getInstance(KerberosPrincipal)</code></a><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-java.io.File-"><code>getInstance(KerberosPrincipal, java.io.File)</code></a>获得,则绑定到特定服务主体,只能由其使用。</span> </p>
<p> <span>请注意当不支持未绑定的keytab <a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance--"></a> <a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-java.io.File-">构建</a><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance--"><code>getInstance()</code></a><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-java.io.File-"><code>getInstance(java.io.File)</code></a>已创建。</span> <span>这些方法不应该被使用了。</span> <span>使用这些方法之一创建的对象被认为绑定到一个未知的主体,这意味着它的<a href="../../../../javax/security/auth/kerberos/KeyTab.html#isBound--"><code>isBound()</code></a>返回true<a href="../../../../javax/security/auth/kerberos/KeyTab.html#getPrincipal--"><code>getPrincipal()</code></a>返回null。</span> </p>
<p> <span>如果应用程序需要从主题访问KeyTab实例可能需要授予应用<a href="../../../../javax/security/auth/PrivateCredentialPermission.html" title="javax.security.auth中的类">程序<code>PrivateCredentialPermission</code></a></span> <span>当应用程序依赖于默认的JGSS Kerberos机制来访问KeyTab时不需要此权限。</span> <span>然而,在这种情况下,应用程序将需要适当的<a href="../../../../javax/security/auth/kerberos/ServicePermission.html" title="javax.security.auth.kerberos中的类"><code>ServicePermission</code></a></span> </p>
<p> <span>keytab文件格式描述于<a href="http://www.ioplex.com/utilities/keytab.txt">http://www.ioplex.com/utilities/keytab.txt</a></span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.7
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t1"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#equals-java.lang.Object-">equals</a></span>(<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a> other)</code>
<div class="block">
将指定的Object与此KeyTab进行比较以获得相等性。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#exists--">exists</a></span>()</code>
<div class="block">
检查keytab文件是否存在。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance--">getInstance</a></span>()</code>
<div class="block">
返回绑定到未知服务主体的默认的
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-java.io.File-">getInstance</a></span>(<a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</code>
<div class="block">
从绑定到未知服务主体的
<code>File</code>对象返回
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-">getInstance</a></span>(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> princ)</code>
<div class="block">
返回绑定到指定的服务主体的默认的
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-java.io.File-">getInstance</a></span>(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> princ, <a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</code>
<div class="block">
从绑定到指定的服务主体的
<code>File</code>对象返回一个
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../../../javax/security/auth/kerberos/KerberosKey.html" title="class in javax.security.auth.kerberos">KerberosKey</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getKeys-javax.security.auth.kerberos.KerberosPrincipal-">getKeys</a></span>(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal)</code>
<div class="block">
返回给定Kerberos主体的新密钥。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getPrincipal--">getPrincipal</a></span>()</code>
<div class="block">
返回这个
<code>KeyTab</code>对象所绑定的服务主体。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getUnboundInstance--">getUnboundInstance</a></span>()</code>
<div class="block">
返回默认未绑定的
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#getUnboundInstance-java.io.File-">getUnboundInstance</a></span>(<a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</code>
<div class="block">
<code>File</code>对象返回未绑定的
<code>KeyTab</code>实例。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#hashCode--">hashCode</a></span>()</code>
<div class="block">
返回此KeyTab的哈希码。
</div> </td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#isBound--">isBound</a></span>()</code>
<div class="block">
如果keytab绑定到一个主体返回
</div> </td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/kerberos/KeyTab.html#toString--">toString</a></span>()</code>
<div class="block">
返回对象的字符串表示形式。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getInstance-java.io.File-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getInstance(<a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</pre>
<div class="block">
<span>从绑定到未知服务主体的<code>File</code>对象返回<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与该文件相关联,并且不会读取它。</span> </p>
<p> <span>当绑定的服务主体已知时,开发人员应调用<a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-java.io.File-"><code>getInstance(KerberosPrincipal,File)</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>file</code> - keytab
<code>File</code>对象,不能为空
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
keytab实例
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>file</code>参数为空
</dd>
</dl> </li>
</ul> <a name="getUnboundInstance-java.io.File-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getUnboundInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getUnboundInstance(<a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</pre>
<div class="block">
<span><code>File</code>对象返回未绑定的<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与文件相关联,并且不会读取它。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>file</code> - keytab
<code>File</code>对象,不能为空
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
keytab实例
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果文件参数为空
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> <a name="getInstance-javax.security.auth.kerberos.KerberosPrincipal-java.io.File-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getInstance(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> princ,
<a href="../../../../java/io/File.html" title="class in java.io">File</a> file)</pre>
<div class="block">
<span>从绑定到指定服务主体的<code>File</code>对象返回<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与该文件相关联,并且不会读取它。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>princ</code> - 绑定的服务主体不能为null
</dd>
<dd>
<code>file</code> - keytab
<code>File</code>对象,不能为空
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
keytab实例
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果任一参数为空
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> <a name="getInstance--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getInstance()</pre>
<div class="block">
<span>返回绑定到未知服务主体的默认的<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与默认的keytab文件相关联并且不会读取它。</span> </p>
<p> <span>当绑定的服务主体已知时,开发人员应调用<a href="../../../../javax/security/auth/kerberos/KeyTab.html#getInstance-javax.security.auth.kerberos.KerberosPrincipal-"><code>getInstance(KerberosPrincipal)</code></a></span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
默认的keytab实例。
</dd>
</dl> </li>
</ul> <a name="getUnboundInstance--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getUnboundInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getUnboundInstance()</pre>
<div class="block">
<span>返回默认未绑定的<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与默认的keytab文件相关联并且不会读取它。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
默认的keytab实例
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> <a name="getInstance-javax.security.auth.kerberos.KerberosPrincipal-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInstance</h4> <pre>public static <a href="../../../../javax/security/auth/kerberos/KeyTab.html" title="class in javax.security.auth.kerberos">KeyTab</a> getInstance(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> princ)</pre>
<div class="block">
<span>返回绑定到指定服务主体的默认的<code>KeyTab</code>实例。</span>
<p> <span>此方法的结果从不为null。</span> <span>此方法仅将返回的<code>KeyTab</code>对象与默认的keytab文件相关联并且不会读取它。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>princ</code> - 绑定的服务主体不能为null
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
默认的keytab实例
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>princ</code>为空
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> <a name="getKeys-javax.security.auth.kerberos.KerberosPrincipal-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getKeys</h4> <pre>public <a href="../../../../javax/security/auth/kerberos/KerberosKey.html" title="class in javax.security.auth.kerberos">KerberosKey</a>[] getKeys(<a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> principal)</pre>
<div class="block">
<span>返回给定Kerberos主体的新密钥。</span>
<p> <span>该方法的实现应该确保返回的密钥与keytab文件的最新内容相匹配。</span> <span>结果是新创建的副本可以由调用者修改而无需修改keytab对象。</span> <span>调用者应该使用结果键后,使用<a href="../../../../javax/security/auth/kerberos/KerberosKey.html#destroy--"><code>destroy</code></a></span> </p>
<p> <span>请注意keytab文件可以在<code>KeyTab</code>对象实例化后创建,并且其内容可能会随时间而变化。</span> <span>因此,应用程序只有在需要使用密钥时才应该调用此方法。</span> <span>先前调用的任何以前的结果可能会过期。</span> </p>
<p> <span>如果在KeyTab文件的读取过程中出现任何错误例如I / O错误或格式错误则应返回保存的结果。</span> <span>如果没有保存的结果(比如,这是调用此方法的第一次,或者所有以前的读取尝试失败),应该返回一个空数组。</span> <span>这可以确保在keytab文件的可能很慢更新期间结果不会被彻底改变。</span> </p>
<p> <span>每次调用此方法并且文件的读取不会异常例如I / O错误或文件格式错误则应保存结果为<code>principal</code></span> <span>如果方便,实现也可以为具有相同键盘对象中的键的其他主体保存键。</span> </p>
<p> <span>从keytab读取的任何不受支持的密钥都被忽略不包括在结果中。</span> </p>
<p> <span>如果此keytab绑定到特定的主体则在另一个主体上调用此方法将返回一个空数组。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>principal</code> - Kerberos主体不能为null。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
键(从不为空,可能为空)
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>principal</code>参数为空
</dd>
<dd>
<code><a href="../../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果安全管理器存在并且不允许对keytab文件的读取访问
</dd>
</dl> </li>
</ul> <a name="exists--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>exists</h4> <pre>public boolean exists()</pre>
<div class="block">
<span>检查keytab文件是否存在。</span>
<span>该方法的实现应该确保结果符合keytab文件的最新状态。</span>
<p> <span>呼叫者可以使用结果来确定是否应该回退到另一种机制来读取密钥。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>如果keytab文件存在则为true;</span>
<span>否则为假。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果存在安全管理员并且不允许对keytab文件的读取访问
</dd>
</dl> </li>
</ul> <a name="toString--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>toString</h4> <pre>public <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> toString()</pre>
<div class="block">
<span class="descfrmTypeLabel">描述从类别复制: <code><a href="../../../../java/lang/Object.html#toString--">Object</a></code></span>
</div>
<div class="block">
<span>返回对象的字符串表示形式。</span>
<span>一般来说, <code>toString</code>方法返回一个“textually代表”这个对象的字符串。</span>
<span>结果应该是一个简明扼要的表达,容易让人阅读。</span>
<span>建议所有子类覆盖此方法。</span>
<p> <span><code>toString</code>类方法<code>Object</code>返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串<code>@</code> ”和对象的哈希码的无符号的十六进制表示。</span> <span>换句话说,这个方法返回一个等于下列值的字符串:</span> </p>
<blockquote>
<span><pre>
getClass().getName() + '@' + Integer.toHexString(hashCode())
</pre></span>
</blockquote>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#toString--">toString</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
对象的字符串表示形式。
</dd>
</dl> </li>
</ul> <a name="hashCode--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>hashCode</h4> <pre>public int hashCode()</pre>
<div class="block">
返回此KeyTab的哈希码。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#hashCode--">hashCode</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个hashCode
<code>KeyTab</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../java/lang/Object.html#equals-java.lang.Object-"><code>Object.equals(java.lang.Object)</code></a>
<a href="../../../../java/lang/System.html#identityHashCode-java.lang.Object-"><code>System.identityHashCode(java.lang.Object)</code></a>
</dd>
</dl> </li>
</ul> <a name="equals-java.lang.Object-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>equals</h4> <pre>public boolean equals(<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a> other)</pre>
<div class="block">
<span>将指定的Object与此KeyTab进行比较以获得相等性。</span>
<span>如果给定的对象也是<code>KeyTab</code> ,并且两个<code>KeyTab</code>实例是等价的则返回true。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../java/lang/Object.html#equals-java.lang.Object-">equals</a></code>在类别
<code><a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>other</code> - 要比较的对象
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果指定的对象等于此KeyTab则为true
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../java/lang/Object.html#hashCode--"><code>Object.hashCode()</code></a> <a href="../../../../java/util/HashMap.html" title="java.util中的类"><code>HashMap</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getPrincipal--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getPrincipal</h4> <pre>public <a href="../../../../javax/security/auth/kerberos/KerberosPrincipal.html" title="class in javax.security.auth.kerberos">KerberosPrincipal</a> getPrincipal()</pre>
<div class="block">
<span>返回这个<code>KeyTab</code>对象所绑定的服务主体。</span>
<span>如果没有绑定,则返回<code>null</code></span>
<p> <span>请注意弃用的构造函数创建一个绑定到一些未知主体的KeyTab对象。</span> <span>在这种情况下此方法也返回null。</span> <span>用户可以致电<a href="../../../../javax/security/auth/kerberos/KeyTab.html#isBound--"><code>isBound()</code></a>来验证这种情况。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
服务主体
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> <a name="isBound--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>isBound</h4> <pre>public boolean isBound()</pre>
<div class="block">
如果keytab绑定到一个主体返回
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果keytab绑定到一个主体
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>