「LDAP検索」の詳細記事: Javaってまだいけますか
いっぱいいっぱいで無理なので学んだ事をいちいちメモっていくブログです。
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Navigation
- 前の記事: DB2のGRANTメモ
- 次の記事: HTMLのnameとidの話
LDAP検索
LDAPサーバへ検索条件を指定して検索を実行する場合のメモ。
基本的には、
(属性名=条件値)
のような形式でフィルタ条件を指定します。
・AND検索
・OR検索
・NOT検索
条件値に特殊文字を含む場合はエスケープする必要があります。
サンプル。
参考
基本的には、
(属性名=条件値)
のような形式でフィルタ条件を指定します。
・AND検索
(&(objectClass=Person)(cn=Babs*))
・OR検索
(|(objectClass=Person)(cn=Babs*))
・NOT検索
(!(objectClass=Person))
条件値に特殊文字を含む場合はエスケープする必要があります。
public String escape(String str) {
if(str == null) {
return "\\00";
}
// 最初に\をエスケープ
if(str.indexOf("\\") >= 0) {
str = StringUtils.replace(str, "\\", "\\5C");
}
if(str.indexOf("*") >= 0) {
str = StringUtils.replace(str, "*", "\\2A");
}
if(str.indexOf("(") >= 0) {
str = StringUtils.replace(str, "(", "\\28");
}
if(str.indexOf(")") >= 0) {
str = StringUtils.replace(str, ")", "\\29");
}
return str;
}
サンプル。
public void search(String cn) {
String filter = "(cn=*" + escape(cn) + ")";
SearchControls ctls = new SearchControls();
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
Hashtable env = getEnv();
DirContext dirContext = new InitialDirContext(env);
try {
NamingEnumeration entries = dirContext.search([baseDn], filter, ctls);
while (entries.hasMore()) {
javax.naming.directory.SearchResult entry = (javax.naming.directory.SearchResult) entries.next();
// 省略
}
} finally {
dirContext.close();
}
}
public Hashtable getEnv() {
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.provider.url", "ldap://" + [LDAPサーバホスト名] + ":" + [LDAPサーバポート番号] + "/");
env.put("java.naming.security.authentication", "simple");
env.put("java.naming.security.principal", "");
env.put("java.naming.security.credentials", "");
return env;
}
参考
PR
Navigation
- 前の記事: DB2のGRANTメモ
- 次の記事: HTMLのnameとidの話
「LDAP検索」にトラックバックする
「LDAP検索」へのトラックバック
「LDAP検索」へのコメント
「LDAP検索」にコメントする
Navigation
- 前の記事: DB2のGRANTメモ
- 次の記事: HTMLのnameとidの話
- インデックスページ
- このページの上部へ
menu
ブログ内検索
カテゴリー
カウンター
忍者アド
リンク
最新CM
[07/17 セバ]
[12/27 NONAME]
最新記事
(10/15)
(10/01)
(08/12)
(08/12)
(08/11)
プロフィール
HN:
takacy.k
年齢:
45
性別:
男性
誕生日:
1979/08/13
趣味:
酒
自己紹介:
個人的なメモですので、投稿内容について真偽を保証するものではありません。また、当ブログの内容をご利用になったことによる(以下略)