操作AD的用户信息(通过LDAP应用)

  Windows AD是Windows ActiveDirectories的简称,意为活动目录。可以用这个服务,进行用户信息的管理。

       安装AD : http://blog.postcha.com/read/80

代码部分

 

//通过ad域登录
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        //ad域地址:windos server上输入ipconfig查看,369是固定端口,dc=contoso,dc=com是域的范围
        env.put(Context.PROVIDER_URL, "ldap://172.23.22.241:389");
        //ad域里面的用户
        env.put(Context.SECURITY_PRINCIPAL, "administrator@netfans.com");
        //ad域里面的密码
        env.put(Context.SECURITY_CREDENTIALS, "1qaz@WSX");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        DirContext ctx = null;
        NamingEnumeration results = null;
        String st="";
        
        try {
            //登录验证
            ctx = new InitialDirContext(env);
            SearchControls controls = new SearchControls();
            controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            //根据用户名查看ad域中是否存在当前用户
            //results = ctx.search("dc=netfans,dc=com", "(&(objectclass=person)(userprincipalname='administrator'))", controls);

            String lastSyncTime = "20190904085630.0Z";
            String syncFilter = String.format("(&(objectClass=user)(whenChanged>=%s)(whenCreated>=%s))", lastSyncTime, lastSyncTime);
            results = ctx.search("dc=netfans,dc=com", syncFilter, controls);
            SearchResult searchResult = (SearchResult) results.next();
            Attributes attributes = searchResult.getAttributes();
            System.out.println(new ObjectMapper().writeValueAsString(attributes));
        } catch (Exception e) {
            e.printStackTrace();
        }

 

  

转载于:https://www.cnblogs.com/sleepingDogs/p/11466909.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值