Cookies 如何在spring security中使用RememberMe进行自定义身份验证
有人能告诉我如何使用spring security中的“记住我”复选框进行自定义身份验证吗 这是登录页面中的“记住我”字段 这是secuirty.xml中的配置 谢谢如中所定义,当声明“记住我”时,“用户服务参考”应为: “记住我的服务实施需要访问 UserDetailsService,因此必须在应用程序中定义一个 上下文。” 然而,在您的例子中,您的用户服务ref是MyCustomAuthentication类型bean的ref。这就是为什么会出现ClassCastException“MyCustomAuthentication不能强制转换为UserDetailsService” 您应该定义如下内容:Cookies 如何在spring security中使用RememberMe进行自定义身份验证,cookies,spring-security,session-cookies,remember-me,Cookies,Spring Security,Session Cookies,Remember Me,有人能告诉我如何使用spring security中的“记住我”复选框进行自定义身份验证吗 这是登录页面中的“记住我”字段 这是secuirty.xml中的配置 谢谢如中所定义,当声明“记住我”时,“用户服务参考”应为: “记住我的服务实施需要访问 UserDetailsService,因此必须在应用程序中定义一个 上下文。” 然而,在您的例子中,您的用户服务ref是MyCustomAuthentication类型bean的ref。这就是为什么会出现ClassCastException“MyCu
<security:user-service id="userDetailsService">
<security:user name="username" password="pass" authorities="ROLE_USER" />
</security:user-service>
并在“用户服务参考”中使用此id
另外,您还必须修复您的身份验证提供商
嗯
根据您的要求,更准确地说:
<http auto-config="true" use-expressions="true">
...
<remember-me user-service-ref="customUserDetailsManager"/>
</http>
<b:bean id="customUserDetailsManager"
class="com.something.something.MyCustomUserDetailsManager" />
<authentication-manager>
<authentication-provider user-service-ref="customUserDetailsManager">
</authentication-provider>
</authentication-manager>
</b:beans>
...
请注意,MyCustomUserDetailsManager应该实现UserDetailsManager
另一个重要注意事项(来自文档):
请注意,这两种(Spring的)实现都需要
用户详细信息服务。如果您使用的是身份验证提供程序
然后不使用UserDetailsService(例如LDAP提供程序)
除非您的应用程序中还有UserDetailsService bean,否则它不会工作
应用程序上下文
您仍然可以使用自定义身份验证类。然而,您必须定义userDetailsService,并将其引用到我向您展示的位置,否则您将继续从spring获得异常。如果有帮助,请友好地标记此答案。记住我与身份验证提供程序无关。当然,您可以实现自己的提供程序,然后使用。记住我和我在例子中展示的一样。我相信多读一些文档会有所帮助。试试这个:没问题。我已经(在我的回答中)从文档中添加了另一个重要和相关的引用,关于userDetailsService的需求。您必须在XML中包含userDetailsService,否则“记住我”将无法工作。