java AD域连接测试及获取所有用户信息(可去掉禁用账户)

java AD域连接测试及获取所有用户信息(可去掉禁用账户)

(AD域测试需要自己拼接ip 端口 账号 密码等内容,然后获取AD域上账户信息,拿到自己想要的数据)
postman自测OK
在这里插入图片描述代码以下:

   /**
     * 测试连接
     *
     * @param request
     * @return
     */
    @PostMapping(value = "/test")
    @ResponseBody
    @ApiOperation("测试连接")
    @ControllerLog(description = "测试连接")
    public ResponseResult test(@RequestBody Map<String, Object> request) {
   
   
        return externalConfigService.testConnection(request);
    }
  @Override
    public ResponseResult testConnection(Map<String, Object> request) {
   
   
        boolean testConnect = ADUtil.testConnect(request);
        return ResponseResult.general(200, testConnect ? "测试连接成功" : "测试连接失败", testConnect ? "YES" : "NO");
    }
@Override
    public ResponseResult testConnection(Map<String, Object> request) {
   
   
        boolean testConnect = ADUtil.testConnect(request);
        return ResponseResult.general(200, testConnect ? "测试连接成功" : "测试连接失败", testConnect ? "YES" : "NO");
    }
import com.alibaba.fastjson.JSONObject;
import com.model.AdDepartment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
import java.util.TreeSet;

public class ADUtil {
   
   
    private static Logger LOG = LoggerFactory.getLogger(ADUtil.class);

    public static NamingEnumeration<SearchResult> getSearchResult(LdapContext ctx, String searchFilter, String searchBase) throws NamingException {
   
   
        //搜索控制器
        SearchControls searchCtls = new SearchControls();
        //创建搜索控制器
        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        String returnedAtts[] = {
   
   "canonicalName", "distinguishedName", "id",
                "name", "userPrincipalName", "departmentNumber", "telephoneNumber", "homePhone",
                "mobile", "department", "sAMAccountName", "whenChanged", "user", "userAccountControl"}; // 定制返回属性
        searchCtls.setReturningAttributes(returnedAtts);
        NamingEnumeration<SearchResult> answer = ctx.search(searchBase, searchFilter, searchCtls);
        return answer;
    }

  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值