java/springboot读取ldap数据
pom.xml引包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ldap</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
定义接收数据实体类
package com.demo.entity;
import lombok.Data;
/**
* Created by JiangJunpeng on 2019/10/30.<br>
*/
@Data
public class LdapData {
private String realName;
private String userName;
private String departmentOu;
private String email;
private String telNo;
private String department;
private String objectGuid;
private String dn;
private String cardId;
}
读取ldap内数据工具类
package com.demo.util;
import com.lanxum.domas.entity.LdapData;
import lombok.extern.slf4j.Slf4j;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.*;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
/**
* Created by JiangJunpeng on 2020/3/23.<br>
*/
@Slf4j
public class SyncLdapData {
public static List<LdapData> ldapData(String syncHost, String userName, String passWord, String ouDc) {
List<LdapData> ldapDataList = new ArrayList<>();
LdapContext ctx = null;
Hashtable<String, String> HashEnv = new Hashtable<>();
// HashEnv.put(Context.PROVIDER_URL, "ldap://" + syncHost + ":389");
HashEnv.put(Context.PROVIDER_URL, syncHost);
// LDAP访问安全级别(none,simple,strong)
HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"