這是本文件的舊版!


LDAP Simple Authentication with Spring API

此範例為: 給予一個admin的dn與password做query,然後針對某一個user做驗證。在此範例中ldapTemplate.authenticate的第一個參數,即使你沒有設定一個對應base,也會從contextSource所設定的base開始找尋。

LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("ldap://192.168.1.13:389");
contextSource.setBase("dc=testldap,dc=org");
contextSource.setUserDn("cn=admin,dc=testldap,dc=org");
contextSource.setPassword("123456");
contextSource.afterPropertiesSet();
 
LdapTemplate ldapTemplate = new LdapTemplate(contextSource);
try {
	ldapTemplate.afterPropertiesSet();
	Filter filter = new EqualsFilter("cn", "tonylin");
	boolean authed = ldapTemplate.authenticate("ou=sw", filter.encode(), "123456");
	Assert.assertTrue(ldapTemplate.authenticate("ou=sw", filter.encode(), "123456"));
	Assert.assertFalse(ldapTemplate.authenticate("ou=sw", filter.encode(), "654321"));
} catch (Exception e) {
	Assert.fail(e.getMessage());
}

LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("ldaps://192.168.1.13:636");
contextSource.setBase("dc=testldap,dc=org");
contextSource.setUserDn("cn=admin,dc=testldap,dc=org");
contextSource.setPassword("123456");
contextSource.afterPropertiesSet();
 
LdapTemplate ldapTemplate = new LdapTemplate(contextSource);
try {
	ldapTemplate.afterPropertiesSet();
	Filter filter = new EqualsFilter("cn", "tonylin");
	boolean authed = ldapTemplate.authenticate("ou=sw", filter.encode(), "123456");
	System.out.println(authed);
} catch (Exception e) {
	e.printStackTrace();
}