モジュール java.base
パッケージ javax.security.auth.x500

クラスX500Principal

    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      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を作成します。
    • コンストラクタの詳細

      • 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)にリストされています)で定義されている属性型キーワードと、オブジェクト識別子(OID)がRFC 5280で定義されているT、DNQまたはDNQUALIFIER、SURNAME、GIVENNAME、INITIALS、GENERATION、EMAILADDRESS、およびSERIALNUMBERキーワードを認識します。 そのほかの属性の型はOIDで指定する必要があります。

        この実装では、RFC 1779および2253で規定されたOID構文よりも制限の強い構文が適用されます。 RFC 4512で規定されたより正しい構文(OIDには次のように少なくとも2つの桁が含まれるという仕様)が使用されます。

        numericoid = number 1*( DOT number )

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

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

        このコンストラクタは、X500Principal(String)に指定された属性の型キーワードと、keywordMapパラメータ内にエントリを持つその他のキーワードを認識します。 X500Principal(String)によって認識されるデフォルトのキーワードより、keywordMap内のキーワード・エントリのほうが優先されます。 キーワードはすべて大文字で指定してください。大文字で指定しなかった場合、そのキーワードは無視されます。 正しく指定されていないキーワードは無視されますが、名前に含まれるキーワードが、正しく指定されていないオブジェクト識別子(OID)にマップされている場合は、IllegalArgumentExceptionがスローされます。 単一のOIDに、最大2つの異なったキーワードをマップできます。

        この実装では、RFC 1779および2253で規定されたOID構文よりも制限の強い構文が適用されます。 RFC 4512で規定されたより正しい構文(OIDには次のように少なくとも2つの桁が含まれるという仕様)が使用されます。

        numericoid = number 1*( DOT number )

        パラメータ:
        name - RFC 1779形式またはRFC 2253形式のX.500識別名
        keywordMap - 属性の型キーワード・マップ。各鍵は、String形式(ピリオドで区切られたゼロ以上の整数の並び)で表された対応するオブジェクト識別子にマップされるキーワードString。 マップは空であってもよいが、nullは不可。
        例外:
        NullPointerException - nameまたはkeywordMapnullの場合
        IllegalArgumentException - nameが正しく指定されていない場合、またはnameに含まれるキーワードに対応するOIDが正しい形式でない場合
        導入されたバージョン:
        1.6
      • 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)を呼び出すのと同等です。

        定義:
        getName 、インタフェース: Principal
        戻り値:
        この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)を発行します。 そのほかの属性の型は、OIDとして発行されます。 厳密に解釈すると、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 - 指定された形式が無効であるか、nullの場合
      • getName

        public String getName​(String format,
                              Map<String,​String> oidMap)
        指定した形式でX.500識別名の文字列形式を返します。 形式に指定する有効な値は「RFC1779」と「RFC2253」(大文字と小文字を区別しない)です。 「CANONICAL」は許可されていません。この値を指定した場合、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 - oidMapnullである場合
        導入されたバージョン:
        1.6
      • getEncoded

        public byte[] getEncoded()
        ASN.1 DERエンコード形式の識別名を返します。 この構造体のASN.1表記については、X500Principal(byte[] name)のドキュメントを参照してください。

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

        戻り値:
        ASN.1 DERエンコード形式の識別名を含むバイト配列
      • toString

        public String toString()
        このX500Principalの、ユーザーが使いやすい文字列表現を返します。
        定義:
        toString 、インタフェース: Principal
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        このX500Principalの文字列表現
      • equals

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

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

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

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