2010-03-02 82 views
2

我想通过LDAP身份验证使用Spring Security的“记住我”。 LDAP认证配置描述如下here,我刚刚做了一些微小的更改。你能向我解释我怎样才能在该配置中添加“记住我”?或者,可以,你可以给我一个样本来描述如何去做。 谢谢。如何在Spring Security和LDAP中使用“记住我”身份验证?

+0

这是一个非常复杂的过程,让我记住我使用LDAP。以下是博客的链接,其中列出了整个流程: http://www.tikalk.com/java/spring-security-3-remember-me-ldap-authentication – jasop 2012-06-20 14:39:19

回答

4

你真的只需要给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> 
相关问题