Spring LDAP |登录并获取

时间:2019-01-28 14:57:53

标签: java spring ldap spring-ldap spring-security-ldap

我从Spring LDAP开始,我正在阅读很多文章,并开始理解它是如何工作的。 我试图做的是标准登录。登录完成后,通过LDAP(OU)/(成员)属性以java代码管理用户。可能还会在实际登录名时获得用户角色。

我的第一个简单登录代码:

<authentication-manager erase-credentials="true">
    <authentication-provider ref="ldapActiveDirectoryAuthProvider"/>
</authentication-manager>

<beans:bean id="ldapActiveDirectoryAuthProvider"
class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
    <beans:constructor-arg value="company.local" />
    <beans:constructor-arg value="ldap://servername.company.local" />
</beans:bean>

我应该使用模板吗?

什么bean id可以很好地完成我想做的事情?

没有LDIF吗?

1 个答案:

答案 0 :(得分:0)

Spring Security的couple中有samples个,展示了如何使用LDAP作为后端进行身份验证。每个示例都使用嵌入式LDAP服务器来简化演示,但是可以将配置更改为point to an AD server。有关角色,请查看LdapAuthoritiesPopulator

我不确定模板的含义,但是您可以像这样指定自定义searchFilter

<beans:bean id="ldapActiveDirectoryAuthProvider"
        class= "org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
    <beans:constructor-arg value="company.local" />
    <beans:constructor-arg value="ldap://servername.company.local" />
    <beans:property name="searchFilter" value="customUserAttribute={0}"/>
</beans:bean>

默认值为(&(objectClass=user)(userPrincipalName={0}))

LDIF仅在使用嵌入式服务器时对Spring Security至关重要,这可能会在集成测试中发挥作用。