spring security LDAP获取用户信息

很多企业内部使用LDAP保存用户信息,这章我们来看一下如何从LDAP中获取Spring Security所需的用户信息。

首先在pom.xml中添加ldap所需的依赖。

org.apache.directory.server apacheds-server-jndi 1.5.5 org.springframework.ldap spring-ldap 1.2.1

然后修改配置文件,使用内嵌的ldap服务器和ldap-authentication-provider。

这里配置内嵌的ldap服务器从users.ldif文件中读取初始化数据,端口使用33389,查询目录的根目录设置为dc=family168,dc=com。

ldap-authentication-provider设置查找组和用户的配置,分别使用ou=groups表示组,使用ou=people表示用户。

用于保存ldap初始信息的文件内容如下:

dn: ou=groups,dc=family168,dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups

dn: ou=people,dc=family168,dc=com
objectclass: top
objectclass: organizationalUnit
ou: people

dn: uid=user,ou=people,dc=family168,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: FirstName LastName
sn: LastName
uid: user
userPassword: user

dn: uid=admin,ou=people,dc=family168,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: FirstName LastName
sn: LastName
uid: admin
userPassword: admin

dn: cn=user,ou=groups,dc=family168,dc=com
objectclass: top
objectclass: groupOfNames
cn: ROLE_USER
member: uid=user,ou=people,dc=family168,dc=com
member: uid=admin,ou=people,dc=family168,dc=com

dn: cn=admin,ou=groups,dc=family168,dc=com
objectclass: top
objectclass: groupOfNames
cn: ROLE_ADMIN
member: uid=admin,ou=people,dc=family168,dc=com

这里在dc=family168,dc=com目录下创建了groups和people两个目录,然后在people目录下创建了user和admin两个用户。在groups目录下创建了admin和user两个目录,并将user和admin两个用户与groups的user目录关联,又将admin用户与groups的admin目录关联。

在系统初始化后,Spring Security会在people下读取用户信息,而对应的权限信息是对应用户所关联的groups信息,Spring Security会将查询到的权限信息加上ROLE_前缀,如cn=admin最终会转换为ROLE_ADMIN。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值