Java Ldap验证
来源:互联网 发布:淘宝卖家从哪里登陆 编辑:程序博客网 时间:2024/05/19 15:21
原微博地址:http://blog.sina.com.cn/s/blog_3f7d7b7c0100cvya.html
1、管理连接的LdapHelper.java
package sunsite.basic;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
public class LdapHelper {
private static DirContext ctx;
@SuppressWarnings(value = "unchecked")
public static DirContext getCtx() {
// if (ctx != null ) {
// return ctx;
// }
String account = "Manager"; //binddn
String password = "pwd"; //bindpwd
String root = "dc=scut,dc=edu,dc=cn"; // root
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/" + root);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn="+account );
env.put(Context.SECURITY_CREDENTIALS, password);
try {
// 链接ldap
ctx = new InitialDirContext(env);
System.out.println("认证成功");
} catch (javax.naming.AuthenticationException e) {
System.out.println("认证失败");
} catch (Exception e) {
System.out.println("认证出错:");
e.printStackTrace();
}
return ctx;
}
public static void closeCtx(){
try {
ctx.close();
} catch (NamingException ex) {
Logger.getLogger(LdapHelper.class.getName()).log(Level.SEVERE, null, ex);