ユーザーが入力した LDAP 設定を検証したい。設定ページで、ユーザーは LDAP URL、マネージャー DN、およびパスワードを入力します。ユーザーが LDAP 接続をすばやく確認できるように、このページに [設定のテスト] ボタンがあります。これを簡単かつ迅速に行う方法は?
私たちのアプリケーションはSpring Securityを使用しており、LDAP認証を追加中です。私は Java と LDAP に慣れていないので、正しい方向に向けていただければ幸いです。
ありがとう。
ユーザーが入力した LDAP 設定を検証したい。設定ページで、ユーザーは LDAP URL、マネージャー DN、およびパスワードを入力します。ユーザーが LDAP 接続をすばやく確認できるように、このページに [設定のテスト] ボタンがあります。これを簡単かつ迅速に行う方法は?
私たちのアプリケーションはSpring Securityを使用しており、LDAP認証を追加中です。私は Java と LDAP に慣れていないので、正しい方向に向けていただければ幸いです。
ありがとう。
与えられた情報に基づいて、自分が知っていることとまだ知らないことを判断するのは困難です。そのため、java.net LdapTemplate: LDAP Programming in Java Made Simpleにあるこの役立つチュートリアルに従って、関係のない章をスキップすることをお勧めします (2006 年のものですが、それでも問題ありません)。この記事で参照されているSpring LDAPは、現時点でバージョン 1.3.1 です。
今のところ Spring LDAP を使用しない場合は、次の従来のコードを使用できます。
Map<String, String> env = new HashMap<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/dc=jayway,dc=se");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid="+ username +",ou=system"); // replace with user DN
env.put(Context.SECURITY_CREDENTIALS, password);
DirContext ctx;
try {
ctx = new InitialDirContext(env);
} catch (NamingException e) {
// handle
}
try {
SearchControls controls = new SearchControls();
controls.setSearchScope( SearchControls.SUBTREE_SCOPE);
ctx.search( "", "(objectclass=person)", controls);
// no need to process the results
} catch (NameNotFoundException e) {
// The base context was not found.
// Just clean up and exit.
} catch (NamingException e) {
// exception handling
} finally {
// close ctx or do Java 7 try-with-resources http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
}