zoukankan      html  css  js  c++  java
  • 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();
    }
    }
    }
    }
    }

  • 相关阅读:
    【2020】iOS证书(.p12)和描述文件(.mobileprovision)一键申请流程
    苹果开发者账号正在调查原因解答
    【2020最新】苹果iOS开发者到期续费流程
    【2020】联系苹果客服电话入口及步骤
    苹果电脑Transporter App及Windows上传ipa工具Appuploader
    一文学会苹果TestFlight上架详细流程
    iOS APP打包上线App Store七个步骤详解(2020版)
    技术分享 | mysql 表数据校验
    MySQL 自带的4个系统数据库的说明
    linux定时任务crontab怎样执行root命令
  • 原文地址:https://www.cnblogs.com/niuniu0108/p/11083295.html
Copyright © 2011-2022 走看看