JavaTM 2 Platform
Standard Ed. 5.0

javax.security.auth.x500
クラス X500Principal

java.lang.Object
  上位を拡張 javax.security.auth.x500.X500Principal
すべての実装されたインタフェース:
Serializable, Principal

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 で定義されています。しかし、RFC 2253 と RFC 1779 の両方に記述された文字列形式も可能であり、また、RFC 2459 で OID (Object Identifier) が定義されている属性の型キーワードも認識します。

この X500Principal の文字列表現は、getName メソッドを呼び出すことで取得できます。

X509CertificategetSubjectX500Principal メソッドと getIssuerX500Principal メソッドは、証明書の発行者フィールドと被認証者フィールドを表す X500Principal を返します。

導入されたバージョン:
1.4
関連項目:
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 を作成します。
 
メソッドの概要
 boolean equals(Object o)
          指定された Object とこの X500Principal が等しいかどうかを比較します。
 byte[] getEncoded()
          ASN.1 DER 符号化形式の識別名を返します。
 String getName()
          RFC 2253 で定義された形式で、X.500 識別名の文字列形式を返します。
 String getName(String format)
          指定した形式で X.500 識別名の文字列形式を返します。
 int hashCode()
          この X500Principal のハッシュコードを返します。
 String toString()
          この X500Principal の、ユーザが使いやすい文字列形式を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

RFC1779

public static final String RFC1779
Distinguished Name の RFC 1779 String 形式です。

関連項目:
定数フィールド値

RFC2253

public static final String RFC2253
Distinguished Name の RFC 2253 String 形式です。

関連項目:
定数フィールド値

CANONICAL

public static final String CANONICAL
Distinguished Name の標準的な String 形式です。

関連項目:
定数フィールド値
コンストラクタの詳細

X500Principal

public X500Principal(String name)
X.500 識別名 (例: CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US) の文字列表現から X500Principal を作成します。識別名は RFC 1779 か RFC 2253 (どちらも可) で定義された文法を使用して指定する必要があります。

このコンストラクタは、RFC 1779 と RFC 2253 で定義された (そして getName(String format) でリストされる) 属性の型キーワードを認識するだけでなく、RFC 2459 で定義された OID を持つ T、DNQ または DNQUALIFIER、SURNAME、GIVENNAME、INITIALS、GENERATION、EMAILADDRESS、SERIALNUMBER の各キーワードおよびその直後のキーワードも認識します。そのほかの属性の型は OID で指定する必要があります。

パラメータ:
name - RFC 1779 形式または RFC 2253 形式の X.500 識別名
例外:
NullPointerException - namenull の場合
IllegalArgumentException - name の指定が正しくない場合

X500Principal

public X500Principal(byte[] name)
ASN.1 DER 符号化形式の識別名から 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 の不正な形式)

X500Principal

public X500Principal(InputStream is)
ASN.1 DER 符号化形式の識別名を含む InputStream から X500Principal を作成します。この構造体の ASN.1 表記は、X500Principal(byte[] name) で説明しています。

入力ストリームの読み込み位置は、符号化した識別名のあとに来る、次の利用可能なバイトになります。

パラメータ:
is - ASN.1 DER 符号化形式による識別名を含む InputStream
例外:
NullPointerException - InputStreamnull の場合
IllegalArgumentException - 符号化エラーが発生した場合 (DN の不正な形式)
メソッドの詳細

getName

public String getName()
RFC 2253 で定義された形式で、X.500 識別名の文字列形式を返します。

このメソッドは、getName(X500Principal.RFC2253) を呼び出すことと等価です。

定義:
インタフェース Principal 内の getName
戻り値:
この X500Principal の識別名

getName

public String getName(String format)
指定した形式で X.500 識別名の文字列形式を返します。形式に指定する有効な値は「RFC1779」、「RFC2253」、「CANONICAL」(大文字と小文字を区別する) のどれかです。

形式に「RFC1779」を指定した場合、このメソッドは RFC 1779 で定義されている属性の型キーワード (CN、L、ST、O、OU、C、STREET) を発行します。そのほかの属性の型は、OID として発行されます。

形式に「RFC2253」を指定した場合、このメソッドは RFC 2253 で定義されている属性の型キーワード (CN, L, ST, O, OU, C, STREET, DC, UID) を発行します。厳密に解釈すると、RFC 2253 では、UTF-8 文字列表現だけを指定できます。このメソッドが返す String は、この UTF-8 表現を復号化することで得られる Unicode 文字列になります。

形式に「CANONICAL」を指定した場合、このメソッドは RFC 2253 に適合し、次のように標準化された文字列表現を返します。

  1. 先頭の 0 は、ドット区切りの 10 進 OID として符号化された属性の型から取り除かれる
  2. PrintableString 型および UTF8String 型の DirectoryString 属性値は、16 進数形式では出力されない
  3. PrintableString および UTF8String 以外の型の DirectoryString 属性値は、16 進数形式で出力される
  4. 前後の空白文字が、16 進数以外の属性値から取り除かれる (値が空白文字を含めて構成されている場合以外)
  5. 1 つ以上の空白文字からなる内部の部分文字列は、16 進数以外の属性値では 1 つの空白文字に変換される
  6. 複数の Attribute Value Assertion (AVA) を含む Relative Distinguished Name は、標準キーワードを含む AVA のアルファベット順、そして OID キーワードを含む AVA の数字順に出力される
  7. エスケープされる属性値の文字は、RFC 2253 のセクション 2.4 でエスケープされると記述されている文字だけである (バックスラッシュ文字を前に付けることでエスケープされる)
  8. 名前全体は String.toUpperCase(Locale.US) を使用して大文字に変換される
  9. 名前全体は String.toLowerCase(Locale.US) を使用して小文字に変換される
  10. 名前は、Unicode Standard と UAX #15 に記述されている正規化形式 KD を使用して、最終的に正規化される

将来、標準形式が追加導入される可能性があります。

パラメータ:
format - 使用する形式
戻り値:
指定した形式を使用した、この X500Principal の文字列形式
例外:
IllegalArgumentException - 指定された形式が無効な場合

getEncoded

public byte[] getEncoded()
ASN.1 DER 符号化形式の識別名を返します。この構造体の ASN.1 表記は、X500Principal(byte[] name) で説明しています。

以降の変更から保護するために、返されるバイト配列の複製が作成されます。

戻り値:
ASN.1 DER 符号化形式による識別名を含むバイト配列

toString

public String toString()
この X500Principal の、ユーザが使いやすい文字列形式を返します。

定義:
インタフェース Principal 内の toString
オーバーライド:
クラス Object 内の toString
戻り値:
この X500Principal の文字列表現

equals

public boolean equals(Object o)
指定された Object とこの X500Principal が等しいかどうかを比較します。

特に、Object oX500Principal であり、このオブジェクトと o の標準的な文字列表現 (getName(X500Principal.CANONICAL) メソッドで取得) が等しい場合に、このメソッドは true を返します。

この実装は、RFC 2459 の要件に準拠しています。

定義:
インタフェース Principal 内の equals
オーバーライド:
クラス Object 内の equals
パラメータ:
o - この X500Principal と等しいかどうかが比較される Object
戻り値:
指定した Object がこの X500Principal と等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
この X500Principal のハッシュコードを返します。

ハッシュコードは getName(X500Principal.CANONICAL).hashCode() で計算されます。

定義:
インタフェース Principal 内の hashCode
オーバーライド:
クラス Object 内の hashCode
戻り値:
この X500Principal のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。