我从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吗?
答案 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至关重要,这可能会在集成测试中发挥作用。