321.4. 使用方法
コンポーネントはプロデューサーエンドポイントのみをサポートします。コンシューマーエンドポイントを作成しようとすると、UnsupportedOperationException
が発生します。
メッセージの本文はマップ (java.util.Map
のインスタンス) でなければなりません。ContextSource の設定でベース DN が指定されていない限り、このマップには、実行する LDAP 操作のルートノードを指定するキー dn
(function_driven 操作には不要) を持つエントリーが少なくとも含まれている必要があります。マップの他のエントリーは操作固有です (以下を参照)。
メッセージの本文は、BIND
と unbind
操作で変更されません。search
および function_driven
操作の場合、本文は検索結果に設定されます。http://static.springsource.org/spring-ldap/site/apidocs/org/springframework/ldap/core/LdapTemplate.html#search%28java.lang.String,%20java.lang.String,%20int,%20org.springframework.ldap.core.AttributesMapper%29 を参照してください
321.4.1. Search
メッセージボディーには、キー filter
を含むエントリーが必要です。値は、有効な LDAP フィルターを表す String
である必要があります。http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol#Search_and_Compare を参照してください。
321.4.2. バインド
メッセージボディーには、キー attributes
を持つエントリーが必要です。値は、javax.naming.directory.Attributes のインスタンスである必要があります。このエントリーは、作成する LDAP ノードを指定します。
321.4.3. Unbind
これ以上のエントリーは必要ありません。指定された dn
を持つノードが削除されます。
321.4.4. 認証
メッセージボディーには、キー filter
および password
を含むエントリーが必要です。値は、それぞれ有効な LDAP フィルターとユーザーパスワードを表す String
のインスタンスである必要があります。
321.4.5. 属性の変更
メッセージボディーには、キー modificationItems
を持つエントリーが必要です。値は、タイプ javax.naming.directory.ModificationItem の任意の配列のインスタンスである必要があります
321.4.6. ファンクションドリブン
メッセージボディーには、キー function
および request
を含むエントリーが必要です。function
値は java.util.function.BiFunction<L, Q, S>
型である必要があります。L
型パラメーターは、型 org.springframework.ldap.core.LdapOperations
でなければなりません。request
値は、function
内の Q
型パラメーターと同じ型である必要があり、function
内で呼び出される LdapTemplate メソッドによって想定されるパラメーターをカプセル化する必要があります。S
型パラメーターは、呼び出された LdapTemplate メソッドによって返されるレスポンスの型を表します。この操作により、上記の操作でカバーされない LdapTemplate メソッドを動的に呼び出すことができます。
キーの定義
スペルミスを避けるために、次の定数が org.apache.camel.springldap.SpringLdapProducer
で定義されています。
- public static final String DN = "dn"
- public static final String FILTER = "filter"
- public static final String ATTRIBUTES = "attributes"
- public static final String PASSWORD = "password";
- public static final String MODIFICATION_ITEMS = "modificationItems";
- public static final String FUNCTION = "function";
- public static final String REQUEST = "request";