クラス LdapUtils
java.lang.ObjectSE
org.springframework.ldap.support.LdapUtils
LDAP を操作するための一般的なユーティリティメソッド。主にフレームワーク内での内部使用向けですが、カスタムコードにも役立ちます。
- 導入:
- 1.2
メソッドのサマリー
修飾子と型メソッド説明static voidcloseContext(DirContextSE context) 指定された JNDI コンテキストを閉じ、スローされた例外を無視します。static voidcollectAttributeValues(AttributesSE attributes, StringSE name, CollectionSE<ObjectSE> collection) 提供された属性から、指定された属性のすべての値を収集します。static <T> voidcollectAttributeValues(AttributesSE attributes, StringSE name, CollectionSE<T> collection, ClassSE<T> clazz) 提供された属性から指定された属性のすべての値を、指定されたクラスとして収集します。static StringSEconvertBinarySidToString(byte[] sid) here で説明されているアルゴリズムに従って、バイナリ SID をその文字列表現に変換します。static StringSEconvertCompositeNameToString(CompositeNameSE compositeName) 恐ろしい「トリプルバックスラッシュ」問題などのエスケープの問題を回避する方法で、CompositeName を文字列に変換します。static NamingException指定されたチェック済みNamingExceptionSE を Spring LDAP ランタイムNamingExceptionに相当するものに変換します。static byte[]convertStringSidToBinary(StringSE string) ここで説明されているアルゴリズムに従って、文字列 SID をバイナリ表現に変換します。static LdapNameSE新しい空の LdapName インスタンスを構築します。static ClassSEgetActualTargetClass(DirContextSE context) 提供された DirContext インスタンスの実際のクラスを取得します。LdapContext または DirContext。static RdnSE提供された Name でリクエストされたキーを持つ Rdn を見つけます。static StringSEgetStringValue(NameSE name, int index) 指定された Name のリクエストされたインデックスにある Rdn の値を文字列として取得します。static StringSEgetStringValue(NameSE name, StringSE key) 指定された Name でリクエストされたキーを文字列として使用して、Rdn の値を取得します。static ObjectSE指定された Name でリクエストされたインデックスで Rdn の値を取得します。static ObjectSE指定された Name でリクエストされたキーを使用して Rdn の値を取得します。static voiditerateAttributeValues(AttributeSE attribute, AttributeValueCallbackHandler callbackHandler) 指定された属性のすべての値を反復処理し、指定された callbackHandler を呼び出します。static LdapNameSEnewLdapName(StringSE distinguishedName) 提供された識別名文字列から新しい LdapName インスタンスを構築します。static LdapNameSEnewLdapName(NameSE name) 提供された Name インスタンスから新しい LdapName インスタンスを構築します。static LdapNameSE名前インスタンスがpathで始まる場合、指定されたNameの先頭に指定されたパスを追加します。static LdapNameSEremoveFirst(NameSE dn, NameSE pathToRemove) 名前インスタンスがpathで始まる場合、指定されたパスを指定されたNameの先頭から削除します。
メソッドの詳細
closeContext
指定された JNDI コンテキストを閉じ、スローされた例外を無視します。これは、JNDI コードの典型的なfinallyブロックに役立ちます。- パラメーター:
context- 閉じる JNDI コンテキスト (nullの場合があります)
convertLdapException
指定されたチェック済みNamingExceptionSE を Spring LDAP ランタイムNamingExceptionに相当するものに変換します。- パラメーター:
ex- 変換する元のチェック済み NamingException- 戻り値:
- 指定された例外をラップする Spring LDAP ランタイム NamingException
getActualTargetClass
提供された DirContext インスタンスの実際のクラスを取得します。LdapContext または DirContext。- パラメーター:
context- チェックする DirContext インスタンス。- 戻り値:
- コンテキストが LdapContext の場合は LdapContext.class、それ以外の場合は DirContext.class。
collectAttributeValues
public static void collectAttributeValues(AttributesSE attributes, StringSE name, CollectionSE<ObjectSE> collection) 提供された属性から、指定された属性のすべての値を収集します。- パラメーター:
attributes- 属性 ;nullではありません。name- 値を取得する属性の名前。collection- 値を収集するコレクション。- 例外:
NoSuchAttributeException- 指定された名前の属性が存在しない場合。- 導入:
- 1.3
collectAttributeValues
public static <T> void collectAttributeValues(AttributesSE attributes, StringSE name, CollectionSE<T> collection, ClassSE<T> clazz) 提供された属性から指定された属性のすべての値を、指定されたクラスとして収集します。- パラメーター:
attributes- 属性 ;nullではありません。name- 値を取得する属性の名前。collection- 値を収集するコレクション。clazz- 収集された属性値のクラス- 例外:
NoSuchAttributeException- 指定された名前の属性が存在しない場合。IllegalArgumentExceptionSE- 属性値を指定されたクラスにキャストできない場合。- 導入:
- 2.0
iterateAttributeValues
public static void iterateAttributeValues(AttributeSE attribute, AttributeValueCallbackHandler callbackHandler) 指定された属性のすべての値を反復処理し、指定された callbackHandler を呼び出します。- パラメーター:
attribute- 操作する属性。nullではありません。callbackHandler- callbackHandler;nullではありません。- 導入:
- 1.3
convertCompositeNameToString
恐ろしい「トリプルバックスラッシュ」問題などのエスケープの問題を回避する方法で、CompositeName を文字列に変換します。- パラメーター:
compositeName- コンバートする CompositeName- 戻り値:
nameの文字列表現を含む文字列
newLdapName
指定された Name インスタンスから新しい LdapName インスタンスを構築します。LdapName インスタンスはクローン作成され、CompositeName 調整はconvertCompositeNameToString(javax.naming.CompositeName)を使用して管理されます。他のすべての Name 実装の場合、新しい LdapName インスタンスはLdapName.addAll(int, javax.naming.Name)SE を使用して構築されます。- パラメーター:
name-nullではなく LdapName に変換する Name インスタンス。- 戻り値:
- 提供されたインスタンスと同じ識別名を表す新しい LdapName。
- 例外:
InvalidNameException- LdapName によってスローされた InvalidNameExceptions をラップします。- 導入:
- 2.0
newLdapName
提供された識別名文字列から新しい LdapName インスタンスを構築します。- パラメーター:
distinguishedName- LdapName インスタンスを構築するために解析する文字列。- 戻り値:
- 新しい LdapName インスタンス。
- 例外:
InvalidNameException- LdapName によってスローされた InvalidNameExceptions をラップします。- 導入:
- 2.0
removeFirst
名前インスタンスがpathで始まる場合、指定されたパスを指定されたNameの先頭から削除します。Nameからベースパスサフィックスを削除できます。元の名前は影響を受けません。- パラメーター:
dn- ストリップする dn。pathToRemove- dn インスタンスの先頭から削除するパス。- 戻り値:
- 指定されたパスが最初から削除された元の名前のコピーである LdapName インスタンス。
- 導入:
- 2.0
prepend
名前インスタンスがpathで始まる場合、指定されたNameの先頭に指定されたパスを追加します。元の名前は影響を受けません。- パラメーター:
dn- ストリップする dn。pathToPrepend- dn の先頭に追加するパス。- 戻り値:
- 先頭に指定されたパスが挿入された元の名前のコピーである LdapName インスタンス。
- 導入:
- 2.0
emptyLdapName
新しい空の LdapName インスタンスを構築します。- 戻り値:
- 空のパス ("") を表す新しい LdapName インスタンス。
- 導入:
- 2.0
getRdn
提供された Name でリクエストされたキーを持つ Rdn を見つけます。- パラメーター:
name- キーを検索する名前。key- 検索する属性キー。- 戻り値:
- リクエストされたキーの最初の出現に対応する rdn。
- 例外:
NoSuchElementExceptionSE- 対応するエントリが見つからない場合。- 導入:
- 2.0
getValue
指定された Name でリクエストされたキーを使用して Rdn の値を取得します。- パラメーター:
name- キーを検索する名前。key- 検索する属性キー。- 戻り値:
- リクエストされたキーの最初の出現に対応する rdn の値。
- 例外:
NoSuchElementExceptionSE- 対応するエントリが見つからない場合。- 導入:
- 2.0
getValue
指定された Name でリクエストされたインデックスで Rdn の値を取得します。- パラメーター:
name- 作業する名前。index- 取得する rdn 値の 0 から始まるインデックス。[0,size()) の範囲内である必要があります。- 戻り値:
- リクエストされたインデックスでの rdn の値。
- 例外:
IndexOutOfBoundsExceptionSE- index が指定範囲外の場合。- 導入:
- 2.0
getStringValue
指定された Name のリクエストされたインデックスにある Rdn の値を文字列として取得します。- パラメーター:
name- 作業する名前。index- 取得する rdn 値の 0 から始まるインデックス。[0,size()) の範囲内である必要があります。- 戻り値:
- リクエストされたインデックスの rdn の値を文字列として返します。
- 例外:
IndexOutOfBoundsExceptionSE- index が指定範囲外の場合。ClassCastExceptionSE- リクエストされたコンポーネントの値が文字列でない場合。- 導入:
- 2.0
getStringValue
指定された Name でリクエストされたキーを文字列として使用して、Rdn の値を取得します。- パラメーター:
name- キーを検索する名前。key- 検索する属性キー。- 戻り値:
- リクエストされたキーの最初の出現に対応する rdn の文字列値。
- 例外:
NoSuchElementExceptionSE- 対応するエントリが見つからない場合。ClassCastExceptionSE- リクエストされたコンポーネントの値が文字列でない場合。- 導入:
- 2.0
convertBinarySidToString
here で説明されているアルゴリズムに従って、バイナリ SID をその文字列表現に変換します。アルゴリズムのインスピレーションをくれたエヤルルプに感謝します。If you have a SID like S-a-b-c-d-e-f-g-... Then the bytes are a (revision) N (number of dashes minus two) bbbbbb (six bytes of "b" treated as a 48-bit number in big-endian format) cccc (four bytes of "c" treated as a 32-bit number in little-endian format) dddd (four bytes of "d" treated as a 32-bit number in little-endian format) eeee (four bytes of "e" treated as a 32-bit number in little-endian format) ffff (four bytes of "f" treated as a 32-bit number in little-endian format) etc. So for example, if your SID is S-1-5-21-2127521184-1604012920-1887927527-72713, then your raw hex SID is 010500000000000515000000A065CF7E784B9B5FE77C8770091C0100 This breaks down as follows: 01 S-1 05 (seven dashes, seven minus two = 5) 000000000005 (5 = 0x000000000005, big-endian) 15000000 (21 = 0x00000015, little-endian) A065CF7E (2127521184 = 0x7ECF65A0, little-endian) 784B9B5F (1604012920 = 0x5F9B4B78, little-endian) E77C8770 (1887927527 = 0X70877CE7, little-endian) 091C0100 (72713 = 0x00011c09, little-endian) S-1- version number (SID_REVISION) -5- SECURITY_NT_AUTHORITY -21- SECURITY_NT_NON_UNIQUE -...-...-...- these identify the machine that issued the SID 72713 unique user id on the machine
- パラメーター:
sid- バイト配列形式のバイナリ SID- 戻り値:
- 指定された sid の文字列バージョン
- 導入:
- 1.3.1
convertStringSidToBinary
ここで説明されているアルゴリズムに従って、文字列 SID をバイナリ表現に変換します。- パラメーター:
string- 読み取り可能な形式の SID- 戻り値:
- 指定された sid のバイナリバージョン
- 導入:
- 1.3.1
- 関連事項: