【问题标题】:How do I use "Remember Me" authentication with Spring Security and LDAP?如何在 Spring Security 和 LDAP 中使用“记住我”身份验证?
【发布时间】:2011-01-22 14:41:12
【问题描述】:
我想使用 Spring Security 的“记住我”和 LDAP 身份验证。 LDAP 身份验证配置描述为here,我刚刚做了一些微小的更改。您能否向我解释一下如何在该配置中添加“记住我”?或者,可能是,你可以给我一个描述如何做的样本。
谢谢。
【问题讨论】:
标签:
java
spring-security
remember-me
【解决方案2】:
你真的只需要给 remember-me 属性一个 data-source-ref 或一个 token-repository-ref 和一个 user-service-ref。我看到了一些在 http 元素中使用基于投票者的 access-decision-manager-ref 的其他示例,但这似乎使 use-expressions="true" 无效。我唯一不喜欢的是必须指定两次 ldap 属性。
<beans:import resource="datasource-context.xml"/>
<http use-expressions="true" >
<intercept-url pattern="/auth/**" access="permitAll" />
<intercept-url pattern="/admin/**" access="hasRole('MY_ROLE_ADMIN')" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<form-login />
<logout />
<remember-me key="_my_remember_me_key"
token-validity-seconds="864000"
data-source-ref="dataSource"
user-service-ref="ldapUserService" />
</http>
<ldap-server id="ldapServerContext" ldif="classpath:users.ldif" root="dc=springframework,dc=org" port="33389" />
<ldap-user-service
id="ldapUserService"
server-ref="ldapServerContext"
user-search-base="ou=people"
user-search-filter="(uid={0})"
group-search-base="ou=groups"
group-role-attribute="cn"
group-search-filter="(member={0})"
role-prefix="MY_ROLE_" />
<authentication-manager>
<ldap-authentication-provider
server-ref="ldapServerContext"
user-search-base="ou=people"
user-search-filter="(uid={0})"
group-search-base="ou=groups"
group-role-attribute="cn"
group-search-filter="(member={0})"
role-prefix="MY_ROLE_" />
</authentication-manager>