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
你本地有搭建域环境么,名称是啥
openLDAP没用过,我这个代码使用来登录windows的域服务器的
你试试domian=“ourschool”或者domain=“ourschool.org”
还有下面的链接你参考一下
http://www.oschina.net/question/1_4479