遇到的难题
1.网上关于openldap基础知识和概念的文章还是很多的,有的也写的非常好.但是认识一个事物的顺序应该是从具体到抽象,所有网上的大部分关于基础知识和概念的文章我看得都是云里雾里 2.springboot 集成spring-boot-starter-data-ldap后,用LdapTemplate 访问ldap确实也很简单,但是一般的文章也只有代码,并没有说明怎么搭建openldap服务(公司产品以前没有用到过ldap,所有我需要搭建ldap服务器) 3.ldap的产品很多,一般市面上用的比较多的是微软的AD和开源的openldap,两者之间有微小的差别
此文目标
搭建一个完整的demo,包含ldap服务器,初始化用户数据,用ldapTemplate访问ldap的服务
搭建服务器
用docker安装比较简单,基本上参考此文就可以安装成功了docker安装openldap.按照文章的步骤一步一步就能安装成功,并且此文章最后的几步还初始化的一个叫zhangsan的用户
初始化用户数据
具体怎么在图形化界面(如下的phpldapadmin)创建用户等信息,可以参考上面提到的篇文章最后几步.我初始化了4个用户. 注意User Name 就是用户的uid,这个后面的java demo用的到
springboot 集成ldap
maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ldap</artifactId>
</dependency>
application.properties配置:
#对比前面搭建ldap的过程,一看就知道下面四个配置是啥,也只需要这四个配置
spring.ldap.urls=ldap://192.168.101.22:389
spring.ldap.base=dc=example,dc=com
spring.ldap.username=cn=admin,dc=example,dc=com
spring.ldap.password=123456
单元测试: 认证成功!!! 要注意的是:一般情况下,在AD中用sAMAccountName去认证,在openldap中用uid去认证 demo中其他的代码: demo中除了ldapTemplate.authenticate(),还有其他api的单元测试 还有动态生成ladapTemplate的代码 还有与我项目有关的一些测试代码不用太关心
demo gitee: https://gitee.com/wangwei1991/try-springboot.
最后
相信我,只要demo跑起来,一切问题将迎刃而解!!!
|