Spring-security 记住我的功能不起作用

Posted

技术标签:

【中文标题】Spring-security 记住我的功能不起作用【英文标题】:Spring-security remember me functionality not working 【发布时间】:2014-08-02 20:45:14 【问题描述】:

我在 config.groovy 中编写下面给出的代码

grails.plugins.springsecurity.providerNames = [
    'rememberMeAuthenticationProvider'
]

grails.plugin.springsecurity.rememberMe.cookieName='grails_remember_me'
grails.plugin.springsecurity.rememberMe.alwaysRemember=false
grails.plugin.springsecurity.rememberMe.tokenValiditySeconds=31*24*60*60
grails.plugin.springsecurity.rememberMe.parameter='_spring_security_remember_me'
grails.plugin.springsecurity.rememberMe.key='monitoringApp' 
grails.plugin.springsecurity.rememberMe.useSecureCookie=false
grails.plugin.springsecurity.rememberMe.persistent=false
grails.plugin.databasemigration.updateOnStart = true

我在我的 gsp 页面上写下面给出的代码

<div class="col-xs-7">
<div class="checkbox">
<label>
<input type='checkbox' name='_spring_security_remember_me' id='remember_me'
<g:if test='$hasCookie'>checked='checked'</g:if>/>
<g:message code="springSecurity.login.remember.me.label"/>
</label>
</div>
</div>

我的控制器所有操作都使用 spring security @Secured(['IS_AUTHENTICATED_FULLY']) 进行了完全身份验证,但我无法使用 spring security 的好处记住我的功能。请帮助我。

我正在使用 grails 2.3.0 版和 spring security :"spring-security-core:2.0-RC2"

【问题讨论】:

在使用记住我功能后,是否提示您的用户登录? 【参考方案1】:

你的用户使用了 Spring security 的记住我功能仍然被提示登录的原因是 IS_AUTHENTICATED_REMEMBEREDIS_AUTHENTICATED_FULLY 不同。

IS_AUTHENTICATED_REMEMBERED 要求用户通过 remember-me cookie 或显式登录进行身份验证

IS_AUTHENTICATED_FULLY 要求用户通过显式登录进行完全身份验证。

所有这一切都在写得很好的documentation中进行了概述。

由于您希望允许用户通过被记住或登录来访问事物,因此您应该强烈考虑使用 IS_AUTHENTICATED_REMEMBERED 而不是 IS_AUTHENTICATED_FULLY,因为它支持这两种情况。

【讨论】:

请参阅此文档以获取Spring Security Core Plugin - Reference Documentation version 3.0.0.M2 我一直在关注这个几个小时来更改记住我的所有可能值和各种存储库设置。这一切都回到了我几周前做出的一些愚蠢决定。

以上是关于Spring-security 记住我的功能不起作用的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅------&gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

Spring-security:带有 COOKIE 的会话配置不起作用

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

@PreAuthorize 注释不起作用弹簧安全性

如何从后台任务在主应用程序上执行功能

ASP.NET MVC 记住我