|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.security.auth.x500.X500Principal
public final class X500Principal
此類別表示一個 X.500 Principal
。X500Principal
由標識名(例如,"CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US")表示。
可以通過使用標識名的字元串表示形式或通過使用標識名的 ASN.1 DER 編碼的位元組表示形式對此類別進行實例化。RFC 2253 中定義了標識名的字元串表示形式的當前規範。但是此類別接受 RFC 2253 和 RFC 1779 的字元串格式,也識別屬性類別別關鍵字,該關鍵字的 OID(物件標識符)是在 RFC 2459 中定義的。
此 X500Principal
的字元串表示形式可以通過調用 getName
方法獲得。
注意,X509Certificate
的 getSubjectX500Principal
和 getIssuerX500Principal
方法返回表示證書的發行者和主體欄位的 X500Principals。
X509Certificate
,
序列化表格欄位摘要 | |
---|---|
static String |
CANONICAL
標識名的規範化字元串格式。 |
static String |
RFC1779
標識名的 RFC 1779 字元串格式。 |
static String |
RFC2253
標識名的 RFC 2253 字元串格式。 |
建構子摘要 | |
---|---|
X500Principal(byte[] name)
根據 ASN.1 DER 編碼格式的標識名創建 X500Principal 。 |
|
X500Principal(InputStream is)
根據包含 ASN.1 DER 編碼格式的標識名的 InputStream 創建 X500Principal 。 |
|
X500Principal(String name)
根據 X.500 標識名(例:"CN=Duke、 OU=JavaSoft、 O=Sun Microsystems、 C=US")的字元串表示形式創建 X500Principal 。 |
|
X500Principal(String name,
Map<String,String> keywordMap)
根據 X.500 標識名(例:「CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US」)的字元串表示形式創建 X500Principal 。 |
方法摘要 | |
---|---|
boolean |
equals(Object o)
比較指定的 Object 與此 X500Principal 的相等性。 |
byte[] |
getEncoded()
返回 ASN.1 DER 編碼形式的標識名。 |
String |
getName()
返回使用 RFC 2253 中所定義格式的 X.500 標識名的字元串表示形式。 |
String |
getName(String format)
返回使用指定格式的 X.500 標識名的字元串表示形式。 |
String |
getName(String format,
Map<String,String> oidMap)
返回使用指定格式的 X.500 標識名的字元串表示形式。 |
int |
hashCode()
返回此 X500Principal 的雜湊碼。 |
String |
toString()
返回此 X500Principal 的使用者友好的字元串表示形式。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String RFC1779
public static final String RFC2253
public static final String CANONICAL
建構子詳細資訊 |
---|
public X500Principal(String name)
X500Principal
。 標識名必須使用 RFC 1779 或 RFC 2253(任何一種格式都是可接受的)中定義的語法指定。
此建構子識別在 RFC 1779 和 RFC 2253(列出在 getName(String format)
中)中定義的屬性類別別關鍵字,以及 T、DNQ 或 DNQUALIFIER、SURNAME、GIVENNAME、INITIALS、GENERATION、EMAILADDRESS 和 SERIALNUMBER 關鍵字(它們的 OID 定義在 RFC 2459 及其後續文檔中)。其他任何屬性型別都必須指定為 OID。
name
- RFC 1779 或 RFC 2253 格式的 X.500 標識名
NullPointerException
- 如果 name
為 null
IllegalArgumentException
- 如果錯誤地指定了 name
public X500Principal(String name, Map<String,String> keywordMap)
X500Principal
。 標識名必須使用 RFC 1779 或 RFC 2253(任何一種格式都是可接受的)中定義的語法指定。
此建構子識別 X500Principal(String)
中指定的屬性型別關鍵字,也識別在 keywordMap
參數列出的其他關鍵字。keywordMap 中的關鍵字項優先於 X500Principal(String)
所識別的預設關鍵字。關鍵字必須全部用大寫指定,否則它們將被忽略。忽略錯誤地指定的關鍵字;但是,如果該名稱中的關鍵字映射到錯誤地指定的 OID,則拋出 IllegalArgumentException
。允許兩個不同的關鍵字映射到同一個 OID。
name
- RFC 1779 或 RFC 2253 格式的 X.500 標識名keywordMap
- 屬性型別關鍵字映射,其中每個關鍵字是一個映射到 String 形式的相應物件標識符的關鍵字 String(由句點分隔的非負整數序列)。映射可以為空但不能為 null
。
NullPointerException
- 如果 name
或 keywordMap
為 null
IllegalArgumentException
- 如果錯誤地指定了 name
或者 name
中的關鍵字映射到沒有以正確形式存在的 OIDpublic X500Principal(byte[] name)
X500Principal
。此結構的 ASN.1 表示如下所示。
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)) }
name
- 套件含 ASN.1 DER 編碼格式的標識名的位元組陣列
IllegalArgumentException
- 如果出現編碼錯誤(不正確的 DN 格式)public X500Principal(InputStream is)
InputStream
創建 X500Principal
。X500Principal(byte[] name)
的文檔中提供了此結構的 ASN.1 表示法。
輸入串流的讀取位置位於已編碼標識名後的下一個可用位元組處。
is
- 套件含 ASN.1 DER 編碼格式的標識名的 InputStream
NullPointerException
- 如果 InputStream
為 null
IllegalArgumentException
- 如果出現編碼錯誤(不正確的 DN 格式)方法詳細資訊 |
---|
public String getName()
此方法等效於調用 getName(X500Principal.RFC2253)
。
Principal
中的 getName
X500Principal
的標識名public String getName(String format)
如果將格式指定為 "RFC1779",則此方法指定 RFC 1779(CN、L、ST、O、OU、C 和 STREET)中定義的屬性型別關鍵字。其他任何屬性型別都被指定為 OID。
如果將格式指定為 "RFC2253",則此方法指定 RFC 2253(CN、L、ST、O、OU、C、STREET、DC 和 UID)中定義的屬性型別關鍵字。其他任何屬性型別都被指定為 OID。在進行嚴格的讀取時,RFC 2253 只指定 UTF-8 字元串表示形式。此方法返回的 String 是通過解碼此 UTF-8 表示形式得到的 Unicode 字元串。
如果將格式指定為 "CANONICAL",則此方法返回遵循 RFC 2253 的字元串表示形式,該表示形式具有如下的附加規範要求:
String.toUpperCase(Locale.US)
將整個名稱轉換為大寫的。
String.toLowerCase(Locale.US)
將整個名稱轉換為小寫的。
其他標準格式可能在以後引入。
format
- 要使用的格式
X500Principal
的字元串表示形式
IllegalArgumentException
- 如果指定格式無效或者為 nullpublic String getName(String format, Map<String,String> oidMap)
IllegalArgumentException
。
此方法返回使用 getName(String)
中指定格式的 String,共時出 oidMap
中列出的 OID 的其他屬性型別關鍵字。oidMap 中的 OID 項優先於 getName(String)
所識別的預設 OID。忽略錯誤地指定的 OID;但是,如果該名稱中的 OID 映射到錯誤地指定的關鍵字,則拋出 IllegalArgumentException
。
其他標準格式可能在以後引入。
警告:其他實作可能無法識別其他屬性型別關鍵字;因此,如果不確定其他實作是否識別這些關鍵字,請不要使用此方法。
format
- 要使用的格式oidMap
- OID 映射,其中每個關鍵字是一個 String 形式的物件標識符(由句點分隔的非負整數序列),它映射到相應的屬性型別關鍵字 String。映射可以為空但不能為 null
。
X500Principal
的字元串表示形式
IllegalArgumentException
- 如果指定格式無效、為 null 或者名稱的 OID 映射到錯誤地指定的關鍵字
NullPointerException
- 如果 oidMap
為 null
public byte[] getEncoded()
X500Principal(byte[] name)
的文檔中提供了此結構的 ASN.1 表示法。
注意,返回的位元組陣列被複製,以防止後續修改。
public String toString()
X500Principal
的使用者友好的字元串表示形式。
Principal
中的 toString
Object
中的 toString
X500Principal
的字元串表示形式public boolean equals(Object o)
Object
與此 X500Principal
的相等性。
需要特別說明的是,如果 Object
o 是一個 X500Principal
,並且此物件和 o 二者的規範字元串表示形式(通過 getName(X500Principal.CANONICAL)
方法獲得)是相等的,此方法返回 true
。
此實作與 RFC 2459 的要求是相容的。
Principal
中的 equals
Object
中的 equals
o
- 將與此 X500Principal
進行相等性比較的物件。
Object
等於此 X500Principal
,則返回 true
;否則返回 false
。Object.hashCode()
,
Hashtable
public int hashCode()
X500Principal
的雜湊碼。
雜湊碼是通過以下方式計算的:getName(X500Principal.CANONICAL).hashCode()
Principal
中的 hashCode
Object
中的 hashCode
X500Principal
的雜湊碼Object.equals(java.lang.Object)
,
Hashtable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。