属性値の比較を行うことにより、属性値の読込みを行わずに値を判定することができます。属性値を比較するには、以下のメソッドを使用します。
javax.naming.DirContext.search()
エントリの検索と同じメソッドですが、以下の制約があります。
検索フィルタには、「(属性名=属性値)」の同値の形式を指定します。
部分文字列の一致、存在など、ワイルドカード「*」は使えません。
検索対象とする範囲には、OBJECT_SCOPEを指定します。
検索結果として取得する属性は、何も通知しないように指定します。
属性値の比較をする例です。
SearchControls constraints = new SearchControls(); constraints.setSearchScope(SearchControls.OBJECT_SCOPE); constraints.setReturningAttributes(new String[0]); NamingEnumeration results = ctx.search("cn=User001,ou=User,ou=interstage,o=fujitsu,dc=com", "mail=user001@sample.fujitsu.com", constraints);