• java连接AD域



    import org.springframework.boot.autoconfigure.SpringBootApplication;

    import java.util.Hashtable;

    import javax.naming.AuthenticationException;
    import javax.naming.Context;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;

    /**
    * 使用java连接AD域,验证账号密码是否正确
    *
    * @author Herman.Xiong
    * @version V3.0
    * @date 2014-12-23 下午02:07:26
    * @since jdk 1.6,tomcat 6.0
    */
    @SpringBootApplication
    public class AdDemoApplication {

    public static void main(String[] args) {
    // SpringApplication.run(AdDemoApplication.class, args);
    connect("192.168.250.40", "389", "testad\qwe", "1qaz@WSX");
    }


    /**
    * 使用java连接AD域
    *
    * @param host 连接AD域服务器的ip
    * @param port AD域服务器的端口
    * @param username 用户名
    * @param password 密码
    * @return void
    * @author Herman.Xiong
    * @date 2014-12-23 下午02:24:04
    */
    public static void connect(String host, String port, String username, String password) {
    DirContext ctx = null;
    Hashtable<String, String> HashEnv = new Hashtable();
    // LDAP访问安全级别(none,simple,strong)
    HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple");
    //AD的用户名(需要加域名)
    HashEnv.put(Context.SECURITY_PRINCIPAL, username);
    //AD的密码
    HashEnv.put(Context.SECURITY_CREDENTIALS, password);
    // LDAP工厂类
    HashEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    //连接超时设置为3秒
    HashEnv.put("com.sun.jndi.ldap.connect.timeout", "3000");
    // 默认端口389
    HashEnv.put(Context.PROVIDER_URL, "ldap://" + host + ":" + port);
    try {
    // 初始化上下文
    ctx = new InitialDirContext(HashEnv);
    System.out.println("身份验证成功!");
    } catch (AuthenticationException e) {
    System.out.println("身份验证失败!");
    e.printStackTrace();
    } catch (javax.naming.CommunicationException e) {
    System.out.println("AD域连接失败!");
    e.printStackTrace();
    } catch (Exception e) {
    System.out.println("身份验证未知异常!");
    e.printStackTrace();
    } finally {
    if (null != ctx) {
    try {
    ctx.close();
    ctx = null;
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    }
    }

  • 相关阅读:
    BeautifulSoup的高级应用 之.parent .parents .next_sibling.previous_sibling.next_siblings.previous_siblings
    zoj 1655 单源最短路 改为比例+最长路
    localstorage
    unix中文件I/O
    TextView超链接
    Linux环境安装phpredis扩展
    可替代google的各种搜索引擎
    otto源代码分析
    8天学通MongoDB——第二天 细说增删查改
    MongoDB (十一) MongoDB 排序文档
  • 原文地址:https://www.cnblogs.com/niuniu0108/p/11083295.html
Copyright © 2020-2023  润新知