LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,是一个开放、厂商中立的行业标准应用协议,其通过 IP 网络访问和维护分布式目录信息服务。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

Spring Data LDAP提供了LDAP抽象。相关依赖包含在了spring-boot-starter-data-ldap Starter中。引入spring-boot-starter-data-ldap依赖,在pom.xml配置文件中增加如下内容(基于之前章节“Spring Boot 构建框架”中的pom.xml文件):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-ldap</artifactId>
</dependency>

应用案例

连接LDAP服务器

连接到LDAP服务器,确保声明spring-boot-starter-data-ldap Starter或者spring-ldap-core引入相关依赖,然后在application.properties声明服务器的URL

spring.ldap.urls=ldap://myserver:1235
spring.ldap.username=admin
spring.ldap.password=secret

注意:如果需要自定义LDAP服务器连接设置,则可以使用spring.ldap.basespring.ldap.base-environment属性。

Spring数据LDAP仓储

Spring Data包含了LDAP仓储支持。可以像任何其他Spring Bean一样注入一个自动配置的LdapTemplate实例,具体代码如下:

@Component
public class MyBean {
    private final LdapTemplate template;
    @Autowired
    public MyBean(LdapTemplate template) {
this.template = template;
    }
    // ...
}

嵌入式LDAP内存服务器

为了实现测试目的,Spring Boot支持从UnboundID自动配置LDAP内存服务器。要配置服务器,请添加com.unboundid:unboundid-ldapsdk依赖并声明一个base-dn属性,具体如下:

spring.ldap.embedded.base-dn=dc=spring,dc=io

默认情况下,服务器将在一个随机端口上启动,并触发常规的 LDAP 支持(不需要指定spring.ldap.urls属性)。

如果classpath存在一个schema.ldif文件,其将用于初始化服务器。如果要从不同的资源加载中加载脚本,可以使用spring.ldap.embedded.ldif属性。

默认情况下,将使用一个标准模式(schema)来校验 LDIF 文件。使用spring.ldap.embedded.validation.enabled属性来完全关闭校验。如果有自定义的属性,可以使用spring.ldap.embedded.validation.schema来定义自定义属性类型或者对象类。

关于LDAP轻量目录服务概念及其原理分析参考资料:https://blog.yoodb.com/yoodb/article/detail/1190

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

  1. #1

    Dharma (2017/12/21 15:23:02)回复
    您好,可以提供完整的源码吗,整合的时候出现问题,解决不了,希望得到你的帮助

    路人甲 (2017/12/26 13:14:09)回复
    这个网上下载的就是完整的源码,直接继承就可以了,为什么还要源码!

分享:

支付宝

微信