SpringBoot整合LDAP的流程分析

 更新时间:2021年05月08日 14:13:38   作者:秋风飒飒吹  
这篇文章主要介绍了SpringBoot整合LDAP的流程分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

依赖

<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:

findAll2:

authenticationTest:

到此这篇关于SpringBoot整合LDAP的流程分析的文章就介绍到这了,更多相关SpringBoot整合LDAP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中的悲观锁与乐观锁是什么

    Java中的悲观锁与乐观锁是什么

    这篇文章主要介绍了Java中的悲观锁与乐观锁是什么,帮助大家更好的理解和学习Java锁的相关知识,感兴趣的朋友可以了解下
    2020-09-09
  • java使用bitmap实现可回收自增id的示例

    java使用bitmap实现可回收自增id的示例

    本文主要介绍了java使用bitmap实现可回收自增id的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • SpringBoot集成Kafka的步骤

    SpringBoot集成Kafka的步骤

    这篇文章主要介绍了SpringBoot集成Kafka的步骤,帮助大家更好的理解和使用SpringBoot,感兴趣的朋友可以了解下
    2021-01-01
  • Java的抽象方法和抽象类实例详解

    Java的抽象方法和抽象类实例详解

    这篇文章主要介绍了Java的抽象方法和抽象类,结合实例形式详细分析了java抽象方法和抽象类的相关原理、使用方法及操作注意事项,需要的朋友可以参考下
    2019-09-09
  • 代码分析JAVA中PCM人声音频变声处理

    代码分析JAVA中PCM人声音频变声处理

    本篇文章通过代码实例给大家分析了JAVA中PCM人声音频变声处理的问题,有兴趣的朋友跟着学习分考下吧。
    2018-01-01
  • fastjson序列化时间自定义格式示例详解

    fastjson序列化时间自定义格式示例详解

    这篇文章主要为大家介绍了fastjson序列化时间自定义格式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 详解Java的桥接方法

    详解Java的桥接方法

    这篇文章主要介绍了Java 桥接方法的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • JAVA模拟新增顺序表及单链表

    JAVA模拟新增顺序表及单链表

    这篇文章主要介绍了JAVA模拟新增顺序表及单链表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 详解springboot读取yml配置的几种方式

    详解springboot读取yml配置的几种方式

    这篇文章主要介绍了详解springboot读取yml配置的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Spring Security密码解析器PasswordEncoder自定义登录逻辑

    Spring Security密码解析器PasswordEncoder自定义登录逻辑

    这篇文章主要为大家介绍了Spring Security密码解析器PasswordEncoder自定义登录逻辑示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论