首页 > 编程开发 > Java    日期:2021-05-25 / 浏览

依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-ldap</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

配置

application.yml

spring:
  ldap:
    urls: ldap://192.168.1.53:389
    username: cn=Manager,${spring.ldap.base}
    password: hadoop
    base: dc=haohaozhu,dc=com

实体类和Dao

/**
 * @author wen.jie
 * @date 2021/5/8 12:31
 */
@Data@ToString
@Entry(base = "ou=people,dc=haohaozhu,dc=com", objectClasses = "inetOrgPerson")
public class Person {

    @Id
    private Name id;
    @DnAttribute(value = "uid")
    private String uid;
    @Attribute(name = "cn")
    private String cn;
    @Attribute(name = "sn")
    private String sn;
    @Attribute(name="mail")
    private String mail;
    @Attribute(name = "homedirectory")
    private String homedirectory;
    @Attribute(name = "gidnumber")
    private String gidnumber;
    @Attribute(name = "uidnumber")
    private String uidnumber;

}

public interface PersonRepository extends LdapRepository<Person> {
}

测试

@SpringBootTest
class BootLdapApplicationTests {

    @Autowired
    private PersonRepository personRepository;

    @Autowired
    private LdapTemplate template;

    @Test
    public void findAll() {
        personRepository.findAll().forEach(System.out::println);
    }

    @Test
    public void findAll2() {
        Person person = template.findOne(LdapQueryBuilder.query().where("uid").is("ldapuser2"), Person.class);
        System.out.println(person);
    }

    @Test
    public void authenticationTest() {
        String uid = "ldapuser2";
        Person authenticate = template.authenticate(
                LdapQueryBuilder.query().where("uid").is(uid),
                "hadoop",
                (dirContext, ldapEntryIdentification) ->
                        template.findOne(LdapQueryBuilder.query().where("uid").is(uid), Person.class));
        System.out.println(authenticate);
    }
}

findAll:

SpringBoot整合LDAP的流程分析

findAll2:

SpringBoot整合LDAP的流程分析

authenticationTest:

SpringBoot整合LDAP的流程分析

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章