java LADP方式验证用户有效性

public static String authentication(String userName,String passWord){


// TODO Auto-generated method stub
String flag;
String host = "*******";//AD域IP,必须填写正确
    String domain = "********";//域名后缀,例[email protected]
    String port = "389"; //端口,一般默认389
    String url = new String("ldap://" + host + ":" + port);//固定写法
    String user = userName.indexOf(domain) > 0 ? userName : userName
    + domain;//网上有别的方法,但是在我这儿都不好使,建议这么使用
    Hashtable env = new Hashtable();//实例化一个Env
    DirContext ctx = null;
    env.put(Context.SECURITY_AUTHENTICATION, "simple");//LDAP访问安全级别(none,simple,strong),一种模式,这么写就行
    env.put(Context.SECURITY_PRINCIPAL, user); //用户名
    env.put(Context.SECURITY_CREDENTIALS, passWord);//密码
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.ldap.LdapCtxFactory");// LDAP工厂类
    env.put(Context.PROVIDER_URL, url);//Url
    try {
    ctx = new InitialDirContext(env);// 初始化上下文
    flag="success";
    } catch (AuthenticationException e) {
    System.out.println("身份验证失败!");
    flag="faild";
    e.printStackTrace();
    } catch (javax.naming.CommunicationException e) {
    System.out.println("AD域连接失败!");
    flag="faild";
    e.printStackTrace();
    } catch (Exception e) {
    System.out.println("身份验证未知异常!");
    flag="faild";
    e.printStackTrace();
    } finally{
    if(null!=ctx){
    try {
    ctx.close();
    ctx=null;
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    return flag;

}

猜你喜欢

转载自blog.csdn.net/zyj_princess/article/details/80828848
今日推荐