public final class X500Principal extends Object implements Principal, Serializable
このクラスは、X.500 Principal
を表します。
X500Principal
は「CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US」のような識別名で表されます。
このクラスは、識別名の文字列表現を使用するか、識別名の ASN.1 DER エンコードバイト表現を使用してインスタンス化されます。識別名の文字列表現についての現在の仕様は、RFC 2253: Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names で定義されています。ただし、このクラスでは、RFC 2253 と RFC 1779: A String Representation of Distinguished Names の両方に記述された文字列形式も使用可能であり、また、RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile で OID (Object Identifier) が定義されている属性の型キーワードも認識します。
この X500Principal
の文字列表現は、getName
メソッドを呼び出すことで取得できます。
X509Certificate
の getSubjectX500Principal
メソッドと getIssuerX500Principal
メソッドは、証明書の発行者とサブジェクトのフィールドを表す X500Principals を返します。
X509Certificate
, 直列化された形式修飾子と型 | フィールドと説明 |
---|---|
static String |
CANONICAL
Distinguished Name の正規の String 形式です。
|
static String |
RFC1779
Distinguished Name の RFC 1779 String 形式です。
|
static String |
RFC2253
Distinguished Name の RFC 2253 String 形式です。
|
コンストラクタと説明 |
---|
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 の、ユーザーが使いやすい文字列表現を返します。 |
public X500Principal(String name)
X500Principal
を作成します。識別名は RFC 1779 か RFC 2253 (どちらも可) で定義された文法を使用して指定する必要があります。
このコンストラクタは、RFC 1779 と RFC 2253 で定義された属性の型キーワード (リストは getName(String format)
で取得可能) を認識するだけでなく、RFC 3280 およびその後継 RFC で OID が定義されている T、DNQ または DNQUALIFIER、SURNAME、GIVENNAME、INITIALS、GENERATION、EMAILADDRESS、SERIALNUMBER の各キーワードも認識します。そのほかの属性の型は 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
パラメータ内にエントリを持つその他のキーワードを認識します。X500Principal(String)
によって認識されるデフォルトのキーワードより、keywordMap 内のキーワードエントリのほうが優先されます。キーワードはすべて大文字で指定してください。大文字で指定しなかった場合、そのキーワードは無視されます。正しく指定されていないキーワードは無視されますが、名前に含まれるキーワードが、正しく指定されていない OID に対応付けられている場合は、IllegalArgumentException
がスローされます。単一の OID に、最大 2 つの異なったキーワードを対応付けることができます。
name
- RFC 1779 形式または RFC 2253 形式の X.500 識別名keywordMap
- 属性の型キーワードマップ。各鍵は、String 形式 (ピリオドで区切られたゼロ以上の整数の並び) で表された対応するオブジェクト識別子にマップされるキーワード String 。マップは空であってもよいが、null
にはならない。NullPointerException
- name
または keywordMap
が null
の場合IllegalArgumentException
- name
が正しく指定されていない場合、または name
に含まれるキーワードに対応する OID が正しい形式でない場合public 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
を作成します。この構造体の ASN.1 表記については、X500Principal(byte[] name)
のドキュメントを参照してください。
入力ストリームの読み込み位置は、エンコードした識別名のあとに来る、次の利用可能なバイトになります。
is
- ASN.1 DER エンコード形式の識別名を含む InputStream
NullPointerException
- InputStream
が null
である場合IllegalArgumentException
- エンコーディングエラーが発生した場合 (DN の不正な形式)public String getName()
このメソッドは、getName(X500Principal.RFC2253)
を呼び出すのと同等です。
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) を発行します。そのほかの属性の型は、OID として発行されます。厳密に解釈すると、RFC 2253 では、UTF-8 文字列表現だけを指定できます。このメソッドが返す String は、この UTF-8 表現をデコードすることで得られる Unicode 文字列になります。
形式に "CANONICAL" を指定した場合、このメソッドは RFC 2253 に適合し、次のように正規化された文字列表現を返します。
String.toUpperCase(Locale.US)
を使用して大文字に変換される。
String.toLowerCase(Locale.US)
を使用して小文字に変換される。
将来、標準形式が追加導入される可能性があります。
format
- 使用する形式X500Principal
の文字列表現IllegalArgumentException
- 指定された形式が無効であるか、null の場合public String getName(String format, Map<String,String> oidMap)
IllegalArgumentException
がスローされます。
このメソッドは、getName(String)
に指定された形式で String を返します。また、oidMap
パラメータ内にエントリがある OID のその他の属性の型キーワードを発行します。getName(String)
が認識するデフォルトの OID より、oidMap 内の OID エントリのほうが優先されます。正しく指定されていない OID は無視されるだけですが、名前に含まれる OID に対応するキーワードが正しく指定されていない場合は、IllegalArgumentException
がスローされます。
将来、標準形式が追加導入される可能性があります。
警告:その他の属性の型キーワードは、その他の実装によって認識されない可能性があります。これらのキーワードがその他の実装によって認識されるかどうか不明な場合は、このメソッドを使用しないでください。
format
- 使用する形式oidMap
- OID マップ。各鍵は、対応する属性の型キーワード String にマップされる、String 形式 (ピリオドで区切られたゼロ以上の整数の並び) で表されたオブジェクト識別子。マップは空であってもよいが、null
にはならない。X500Principal
の文字列表現IllegalArgumentException
- 指定された形式が無効であるか、null であるか、名前に含まれる OID が不正なキーワードに対応している場合NullPointerException
- oidMap
が null
である場合public byte[] getEncoded()
X500Principal(byte[] name)
のドキュメントを参照してください。
以降の変更から保護するために、返されるバイト配列の複製が作成されます。
public String toString()
X500Principal
の、ユーザーが使いやすい文字列表現を返します。public boolean equals(Object o)
Object
をこの X500Principal
と比較して等しいかどうかを調べます。
特に、Object
o が X500Principal
であり、このオブジェクトと o の正規の文字列表現 (getName(X500Principal.CANONICAL)
メソッドで取得) が等しい場合に、このメソッドは true
を返します。
この実装は、RFC 3280 の要件に準拠しています。
public int hashCode()
X500Principal
のハッシュコードを返します。
ハッシュコードは getName(X500Principal.CANONICAL).hashCode()
によって計算されます。
hashCode
、インタフェース: Principal
hashCode
、クラス: Object
X500Principal
のハッシュコードObject.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.