666 lines
35 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">
compact1, compact2, compact3
</div>
<div class="subTitle">
javax.security.auth.x500
</div>
<h2 class="title" title="Class X500Principal">Class X500Principal</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.x500.X500Principal</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../../java/io/Serializable.html" title="java.io中的接口">Serializable</a> <a href="../../../../java/security/Principal.html" title="java.security中的接口">Principal</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public final class <span class="typeNameLabel">X500Principal</span>
extends <a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a>
implements <a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a>, <a href="../../../../java/io/Serializable.html" title="interface in java.io">Serializable</a></pre>
<div class="block">
<p> <span>这个类代表X.500 <code>Principal</code></span> <span><code>X500Principal</code>由可分辨名称表示例如“CN = DukeOU = JavaSoftO = Sun MicrosystemsC = US”。</span> </p>
<p> <span>该类可以通过使用可分辨名称的字符串表示法或通过使用可分辨名称的ASN.1 DER编码字节表示来实例化。</span> <span>RFC 2253: Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names中定义了可识别名字符串表示形式的当前<a href="http://www.ietf.org/rfc/rfc2253.txt">规范</a></span> <span>但是此类接受RFC 2253和<a href="http://www.ietf.org/rfc/rfc1779.txt">RFC 1779: A String Representation of Distinguished Names的</a>字符串格式并且还可以识别其OID对象标识符<a href="http://www.ietf.org/rfc/rfc3280.txt">RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile</a>中定义的<a href="http://www.ietf.org/rfc/rfc3280.txt">属性</a>类型关键字。</span> </p>
<p> <span>此字符串表示<code>X500Principal</code>可以通过调用获得<code>getName</code>方法。</span> </p>
<p> <span>请注意<code>getSubjectX500Principal</code><code>getIssuerX500Principal</code>方法<code>X509Certificate</code>返回代表证券的发行人和主体字段的X500Principals。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../java/security/cert/X509Certificate.html" title="java.security.cert中的类"><code>X509Certificate</code></a> <a href="../../../../serialized-form.html#javax.security.auth.x500.X500Principal">Serialized Form</a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <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/x500/X500Principal.html#CANONICAL">CANONICAL</a></span></code>
<div class="block">
可分辨名称的规范字符串格式。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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/x500/X500Principal.html#RFC1779">RFC1779</a></span></code>
<div class="block">
RFC 1779可分辨名称的字符串格式。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <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/x500/X500Principal.html#RFC2253">RFC2253</a></span></code>
<div class="block">
RFC 2253可分辨名称的字符串格式。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-byte:A-">X500Principal</a></span>(byte[] name)</code>
<div class="block">
从ASN.1 DER编码表单中的专有名称创建
<code>X500Principal</code>
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-java.io.InputStream-">X500Principal</a></span>(<a href="../../../../java/io/InputStream.html" title="class in java.io">InputStream</a> is)</code>
<div class="block">
从包含ASN.1 DER编码格式的可分辨名称的
<code>InputStream</code>创建
<code>X500Principal</code>
</div> </td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-java.lang.String-">X500Principal</a></span>(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> name)</code>
<div class="block">
创建一个
<code>X500Principal</code>从X.500标识名的字符串表示(比如: “CN =公爵OU = JavaSoft的O = Sun微系统C = US”
</div> </td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-java.lang.String-java.util.Map-">X500Principal</a></span>(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> name, <a href="../../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>,<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>&gt; keywordMap)</code>
<div class="block">
创建一个
<code>X500Principal</code>从X.500标识名的字符串表示(比如: “CN =公爵OU = JavaSoft的O = Sun微系统C = US”
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== 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="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/x500/X500Principal.html#equals-java.lang.Object-">equals</a></span>(<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a> o)</code>
<div class="block">
<code>Object</code>与此
<code>X500Principal</code>进行比较以获得相等性。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#getEncoded--">getEncoded</a></span>()</code>
<div class="block">
以ASN.1 DER编码形式返回可分辨名称。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<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/x500/X500Principal.html#getName--">getName</a></span>()</code>
<div class="block">
使用RFC 2253中定义的格式返回X.500可分辨名称的字符串表示形式。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<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/x500/X500Principal.html#getName-java.lang.String-">getName</a></span>(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> format)</code>
<div class="block">
使用指定的格式返回X.500可分辨名称的字符串表示形式。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<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/x500/X500Principal.html#getName-java.lang.String-java.util.Map-">getName</a></span>(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> format, <a href="../../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>,<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>&gt; oidMap)</code>
<div class="block">
使用指定的格式返回X.500可分辨名称的字符串表示形式。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/security/auth/x500/X500Principal.html#hashCode--">hashCode</a></span>()</code>
<div class="block">
返回这个
<code>X500Principal</code>的哈希码。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<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/x500/X500Principal.html#toString--">toString</a></span>()</code>
<div class="block">
返回这个
<code>X500Principal</code>的用户友好的字符串
<code>X500Principal</code>
</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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.security.Principal">
<!-- --> </a> <h3>Methods inherited from interface java.security.<a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a></h3> <code><a href="../../../../java/security/Principal.html#implies-javax.security.auth.Subject-">implies</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="RFC1779">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>RFC1779</h4> <pre>public static final <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> RFC1779</pre>
<div class="block">
RFC 1779可分辨名称的字符串格式。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.security.auth.x500.X500Principal.RFC1779">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="RFC2253">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>RFC2253</h4> <pre>public static final <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> RFC2253</pre>
<div class="block">
RFC 2253可分辨名称的字符串格式。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.security.auth.x500.X500Principal.RFC2253">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="CANONICAL">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>CANONICAL</h4> <pre>public static final <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> CANONICAL</pre>
<div class="block">
可分辨名称的规范字符串格式。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../constant-values.html#javax.security.auth.x500.X500Principal.CANONICAL">Constant Field Values</a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="X500Principal-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>X500Principal</h4> <pre>public X500Principal(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> name)</pre>
<div class="block">
<span>创建一个<code>X500Principal</code>从X.500标识名的字符串表示(比如: “CN =公爵OU = JavaSoft的O = Sun微系统C = US”</span>
<span>必须使用RFC 1779或RFC 2253中定义的语法可接受的格式来指定专有名称。</span>
<p> <span>该构造函数识别RFC 1779和RFC 2253并列在<a href="../../../../javax/security/auth/x500/X500Principal.html#getName-java.lang.String-"><code>getName(String format)</code></a> 中定义的属性类型关键字以及TDNQ或DNQUALIFIERSURNAMEGIVENNAMEINITIALSGENERATIONEMAILADDRESS和SERIALNUMBER关键字其对象标识符OID在RFC 3280及其后继中定义。</span> <span>任何其他属性类型都必须指定为OID。</span> </p>
<p> <span>该实现强制执行比RFC 1779和2253中定义的更为严格的OID语法。它使用<a href="http://www.ietf.org/rfc/rfc4512.txt">RFC 4512</a>中定义的更正确的语法该语法规定OID至少包含两位数</span> </p>
<p> <code>numericoid = number 1*( DOT number )</code> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>name</code> - RFC 1779或RFC 2253格式的X.500专有名称
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> -如果
<code>name</code>
<code>null</code>
</dd>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>name</code>未正确指定
</dd>
</dl> </li>
</ul> <a name="X500Principal-java.lang.String-java.util.Map-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>X500Principal</h4> <pre>public X500Principal(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> name,
<a href="../../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>,<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>&gt; keywordMap)</pre>
<div class="block">
<span>创建一个<code>X500Principal</code>从X.500标识名的字符串表示(比如: “CN =公爵OU = JavaSoft的O = Sun微系统C = US”</span>
<span>必须使用RFC 1779或RFC 2253中定义的语法可接受的格式来指定专有名称。</span>
<p> <span>此构造方法识别在指定的属性类型关键字<a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-java.lang.String-"><code>X500Principal(String)</code></a> ,也认识到必须在项目额外的关键字<code>keywordMap</code>参数。</span> <span>在关键词的条目keywordMap优先于识别的默认关键字<code>X500Principal(String)</code></span> <span>关键字必须以大写形式指定,否则将被忽略。</span> <span>不当指定的关键字将被忽略;</span> <span>但是如果名称中的关键字映射到不正确指定的对象标识符OID则抛出<code>IllegalArgumentException</code></span> <span>允许有两个不同的关键字映射到同一个OID。</span> </p>
<p> <span>该实现强制执行比RFC 1779和2253中定义的更为严格的OID语法。它使用<a href="http://www.ietf.org/rfc/rfc4512.txt">RFC 4512</a>中定义的更正确的语法它指定OID至少包含两位数</span> </p>
<p> <code>numericoid = number 1*( DOT number )</code> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>name</code> - RFC 1779或RFC 2253格式的X.500专有名称
</dd>
<dd>
<span><code>keywordMap</code> - 属性类型关键字映射其中每个关键字是一个关键字String它以String形式映射到对应的对象标识符按照句点分隔的非负整数序列</span>
<span>地图可能是空的,但从来没有<code>null</code></span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>name</code>
<code>keywordMap</code>
<code>null</code>
</dd>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> -如果
<code>name</code>被错误地指定或在关键字
<code>name</code>映射到OID不在正确的形式
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
</dl> </li>
</ul> <a name="X500Principal-byte:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>X500Principal</h4> <pre>public X500Principal(byte[] name)</pre>
<div class="block">
<span>从ASN.1 DER编码形式的专有名称创建<code>X500Principal</code></span>
<span>该结构的ASN.1符号如下。</span>
<pre> <span><code> Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue AttributeTypeAndValue ::= SEQUENCE { type AttributeType, value AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DEFINED BY AttributeType .... DirectoryString ::= CHOICE { teletexString TeletexString (SIZE (1..MAX)), printableString PrintableString (SIZE (1..MAX)), universalString UniversalString (SIZE (1..MAX)), utf8String UTF8String (SIZE (1.. MAX)), bmpString BMPString (SIZE (1..MAX)) } </code></span> </pre>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>name</code> - 包含ASN.1 DER编码形式的可分辨名称的字节数组
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果出现编码错误DN格式不正确
</dd>
</dl> </li>
</ul> <a name="X500Principal-java.io.InputStream-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>X500Principal</h4> <pre>public X500Principal(<a href="../../../../java/io/InputStream.html" title="class in java.io">InputStream</a> is)</pre>
<div class="block">
<span>从包含ASN.1 DER编码表单中的可分辨名称的<code>InputStream</code>创建<code>X500Principal</code></span>
<span>此结构的ASN.1表示的文档中被提供为<a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-byte:A-"><code>X500Principal(byte[] name)</code></a></span>
<p> <span>输入流的读取位置位于编码的可分辨名称之后的下一个可用字节。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>is</code> - 一个
<code>InputStream</code>其中包含ASN.1中的可分辨名称DER编码形式
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>InputStream</code>
<code>null</code>
</dd>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果出现编码错误DN格式不正确
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getName--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getName</h4> <pre>public <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getName()</pre>
<div class="block">
<span>使用RFC 2253中定义的格式返回X.500可分辨名称的字符串表示形式。</span>
<p> <span>此方法相当于调用<code>getName(X500Principal.RFC2253)</code></span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Principal.html#getName--">getName</a></code>在界面
<code><a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该名称为
<code>X500Principal</code>
</dd>
</dl> </li>
</ul> <a name="getName-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getName</h4> <pre>public <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getName(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> format)</pre>
<div class="block">
<span>使用指定的格式返回X.500可分辨名称的字符串表示形式。</span>
<span>格式的有效值为“RFC1779”“RFC2253”和“CANONICAL”不区分大小写</span>
<p> <span>如果“RFC1779”被指定为格式则此方法将发出RFC 1779CNLSTOOUCSTREET中定义的属性类型关键字。</span> <span>任何其他属性类型都作为OID发出。</span> </p>
<p> <span>如果“RFC2253”被指定为格式则该方法发出RFC 2253CNLSTOOUCSTREETDCUID中定义的属性类型关键字。</span> <span>任何其他属性类型都作为OID发出。</span> <span>在严格的阅读下RFC 2253只指定一个UTF-8字符串表示形式。</span> <span>该方法返回的String是通过解码此UTF-8表示形式而获得的Unicode字符串。</span> </p>
<p> <span>如果将“CANONICAL”指定为格式则此方法返回RFC 2253一致性字符串表示并附带以下附加规范</span> </p>
<ol>
<li> <span>从以点分十进制OID编码的属性类型中删除前导零</span> </li>
<li> <span>类型为PrintableString和UTF8String的DirectoryString属性值不以十六进制格式输出</span> </li>
<li> <span>除PrintableString和UTF8String之外的类型的DirectoryString属性值以十六进制格式输出</span> </li>
<li> <span>前导和尾随的空白字符从非十六进制属性值中删除(除非该值完全由空格字符组成)</span> </li>
<li> <span>一个或多个空白字符的内部子字符串将转换为非十六进制属性值中的单个空格</span> </li>
<li> <span>包含多个属性值断言AVA的相对可分辨名称按以下顺序输出包含标准关键字的AVAs的字母排序后跟包含OID关键字的AVA的数字排序。</span> </li>
<li> <span>转义属性值中唯一的字符是RFC 2253状态的第2.4节必须被转义(它们使用前面的反斜杠字符进行转义)</span> </li>
<li> <span>整个名称使用<code>String.toUpperCase(Locale.US)</code>转换为大写<code>String.toUpperCase(Locale.US)</code></span> </li>
<li> <span>整个名称使用<code>String.toLowerCase(Locale.US)</code>转换为小写</span> </li>
<li> <span>使用Unicode标准和UAX15中描述的标准化形式KD终止该名称</span> </li>
</ol>
<p> <span>未来可能会引入其他标准格式。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>format</code> - 要使用的格式
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
这个
<code>X500Principal</code>的字符串表示使用指定的格式
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果指定的格式无效或为空
</dd>
</dl> </li>
</ul> <a name="getName-java.lang.String-java.util.Map-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getName</h4> <pre>public <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> getName(<a href="../../../../java/lang/String.html" title="class in java.lang">String</a> format,
<a href="../../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>,<a href="../../../../java/lang/String.html" title="class in java.lang">String</a>&gt; oidMap)</pre>
<div class="block">
<span>使用指定的格式返回X.500可分辨名称的字符串表示形式。</span>
<span>该格式的有效值为“RFC1779”和“RFC2253”不区分大小写</span>
<span>“CANONICAL”是不允许的 <code>IllegalArgumentException</code>将被抛出。</span>
<p> <span>这种方法在如在所指定的格式返回字符串<a href="../../../../javax/security/auth/x500/X500Principal.html#getName-java.lang.String-"><code>getName(String)</code></a>和还发出附加属性类型关键字用于具有中的条目的OID <code>oidMap</code>参数。</span> <span>在OID条目oidMap优先认可默认的OID <code>getName(String)</code></span> <span>不当指定的OID被忽略;</span> <span>但是如果名称中的OID映射到不正确指定的关键字则抛出<code>IllegalArgumentException</code></span> </p>
<p> <span>未来可能会引入其他标准格式。</span> </p>
<p> <span>警告:附加属性类型关键字可能不被其他实现识别;</span> <span>因此,如果您不确定这些关键字是否将被其他实现识别,那么不要使用此方法。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>format</code> - 要使用的格式
</dd>
<dd>
<span><code>oidMap</code> - 一个OID映射其中每个键是以String形式由句点分隔的非负整数序列的对象标识符映射到相应的属性类型keyword String。</span>
<span>地图可能是空的,但从来没有<code>null</code></span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
此的字符串表示
<code>X500Principal</code>使用指定的格式
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果指定的格式无效则该名称中的OID或OID映射到不正确的关键字
</dd>
<dd>
<code><a href="../../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>oidMap</code>
<code>null</code>
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
</dl> </li>
</ul> <a name="getEncoded--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getEncoded</h4> <pre>public byte[] getEncoded()</pre>
<div class="block">
<span>以ASN.1 DER编码形式返回可分辨名称。</span>
<span>此结构的ASN.1表示的文档中被提供为<a href="../../../../javax/security/auth/x500/X500Principal.html#X500Principal-byte:A-"><code>X500Principal(byte[] name)</code></a></span>
<p> <span>请注意,返回的字节数组被克隆以防止后续修改。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个包含ASN.1 DER编码形式的可分辨名称的字节数组
</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">
返回这个
<code>X500Principal</code>的用户友好的字符串
<code>X500Principal</code>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Principal.html#toString--">toString</a></code>在界面
<code><a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a></code>
</dd>
<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>
这个
<code>X500Principal</code>的字符串
<code>X500Principal</code>
</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> o)</pre>
<div class="block">
<span>将指定的<code>Object</code>与此<code>X500Principal</code>进行比较以获得相等性。</span>
<p> <span>具体来说,如果<code>Object</code> <i>o</i><code>X500Principal</code> ,并且如果该对象和<i>o</i>的相应的规范字符串表示(通过<code>getName(X500Principal.CANONICAL)</code>方法获得)相等,则该方法返回<code>true</code></span> </p>
<p> <span>此实现符合RFC 3280的要求。</span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Principal.html#equals-java.lang.Object-">equals</a></code>在界面
<code><a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a></code>
</dd>
<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>o</code> - 与此
<code>X500Principal</code>进行平等比较的对象
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果指定的
<code>Object</code>等于此
<code>X500Principal</code>
<code>false</code> false
</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="hashCode--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>hashCode</h4> <pre>public int hashCode()</pre>
<div class="block">
<span>返回这个<code>X500Principal</code>的哈希码。</span>
<p> <span>哈希码通过以下<code>getName(X500Principal.CANONICAL).hashCode()</code> <code>getName(X500Principal.CANONICAL).hashCode()</code></span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../java/security/Principal.html#hashCode--">hashCode</a></code>在界面
<code><a href="../../../../java/security/Principal.html" title="interface in java.security">Principal</a></code>
</dd>
<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>
这个
<code>X500Principal</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> </li>
</ul> </li>
</ul>
</div>
</div>