LDAP到底该怎么验证呢

kidbei 发布于 2012/11/07 14:12
阅读 961
收藏 0
public boolean loginCheckByLDAP(String username,String password){
boolean flag = true;
String initialContextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
String ad4ProviderURL = "ldap://localhost:389";
String securityAuthentication = "hz";
String domain = "ou=clazz,dc=ourschool,dc=org";
if(!username.startsWith(domain)){
username = domain+"\\"+username;
}
Hashtable<String,String> env = new Hashtable<String,String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactory);
env.put(Context.PROVIDER_URL, ad4ProviderURL);
env.put(Context.SECURITY_AUTHENTICATION, securityAuthentication);
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
LdapContext ctx = null;
try {
ctx = new InitialLdapContext(env, null);
} catch (NamingException e) {
System.out.println("Authentication error, username is: " + username);
flag = false;
}finally{
if(ctx!=null){
try {
ctx.close();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
return flag;

}

为什么验证不了啊.....Authentication error, username is: ou=clazz,dc=ourschool,dc=org\hz

加载中
0
晕dows
晕dows
domain不对啊
kidbei
kidbei
没有使用过.....你能看出来需要怎么写吗?
晕dows
晕dows
回复 @kidbei : 你想的域名和我说的应该不一样,我说的类似与(oschina.net)这种
晕dows
晕dows
回复 @kidbei : 你平时有没有使用过域帐号?,就是类似与domain/username这种的帐号
kidbei
kidbei
domain不是完整的域名吗?该填多少?
0
晕dows
晕dows
很短的,一般就一个单词
你本地有搭建域环境么,名称是啥
kidbei
kidbei
有啊,我是windows上用的openldap,只要配置slapd.conf文件啊,database bdb suffix "dc=ourschool,dc=org" rootdn "cn=huzhuang,dc=ourschool,dc=org" directory D:/openldap/var/openldap-data index objectClass eq
0
晕dows
晕dows

openLDAP没用过,我这个代码使用来登录windows的域服务器的
你试试domian=“ourschool”或者domain=“ourschool.org”
还有下面的链接你参考一下

http://www.oschina.net/question/1_4479

0
kidbei
kidbei
@红薯 ,继续求教
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部