モジュール java.naming
パッケージ javax.naming.ldap

クラスLdapName

java.lang.Object
javax.naming.ldap.LdapName
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Object>, Name

public class LdapName extends Object implements Name
このクラスは、RFC 2253に指定されている識別名を表します。 識別名(DN)は、相対識別名(RDN)と呼ばれるコンポーネント群の順序付きリストです。 DNの詳細は、RFC 2253に記載されています。

このクラスは、RFC 2253に見られるいくつかのあいまいな点を明らかにします。

  • RFC 2253では、「空白」という語の意味が未定義になっています。 代わりにASCII空白文字0x20 (" ")が使用されています。
  • 空白は、カンマ(,)、セミコロン(;)、等号(=)、プラス記号(+)の左右どちら側にも入力できます。 こうした空白は、このコード内で使用可能ですが、このコードによって生成されることはなく、名前の比較時には無視されます。
  • 等号(=)を含むAttributeValue文字列や、行の先頭以外の位置にあるエスケープされないハッシュ記号(#)も使用可能です。

LdapNameに渡される文字列名やLdapNameから返される文字列名は、完全なUnicode文字セットを使用します。 これらの文字列名には、「\\B4」のような各オクテットが3文字のサブ文字列で表される、UTF-8にエンコードされる文字を含めることができます。 一方、文字列内で各オクテットが単一の文字で表される、UTF-8にエンコードされる文字を含めることはできません。この記述は、意味がややあいまいです。

LdapNameは、有効な名前をすべて適切に解析する一方で、無効な名前の解析時には、違反の可能性を完全には検出しません。 つまり、無効な名前に対して「寛大」です。 名前の有効性は、最終的にLDAPサーバーに渡された時点で判定されます。LDAPサーバーは、スキーマ情報や相互運用の要件などの各種要因に基づいて、渡された名前を受け付けるか拒否します。

同等性、属性の型、バイナリ値および文字列値のテスト時に、名前を構成するアルファベットの大文字と小文字は区別されません。 引用、エスケープ、UTF-8の16進エンコーディングが同じであれば、文字列値そのものが異なっていても、同一の文字列と見なされます。 複数の値を持つRDN (「ou=Sales+cn=Bob」など)内のコンポーネントの順序は重要ではありません。

LDAP名のコンポーネント(RDN)には番号が付けられています。 n個のRDNからなるLDAP名のインデックスの範囲は0からn-1です。 この範囲は、[0,n]と表されます。 一番右のRDNはインデックス0、一番左のRDNはインデックスn-1です。 たとえば、「CN=Steve Kille, O=Isode Limited, C=GB」という識別名には、{C=GB, O=Isode Limited, CN=Steve Kille}の順に、0、1、2という番号が付けられます。 空のLDAP名は、空のRDNリストで表されます。

LdapNameインスタンスの同時マルチスレッド読み取り専用アクセスを同期する必要はありません。

ほかで指定がない場合、null引数をコンストラクタ、またはこのクラスのメソッドへ渡すと、NullPointerExceptionがスローされます。

導入されたバージョン:
1.5
関連項目: