2

有人遇到登录失败的错误消息没有出现吗?

我正在将 grails 1.3.7 应用程序升级到 grails 2.1.1,并且我在 spring 安全核心功能方面遇到了 2 个问题。

首先,如果我尝试无效登录,则身份验证失败,但没有错误消息,只有 {} 在 Flash 消息中。

其次,我使用这样的方法来获取当前的活动会话数。它不再准确,因为它只是增加并且无法识别注销。

def getCurrentSessionCount(){
    def sessioncount = 0
    sessionRegistry.getAllPrincipals().each{
        sessioncount += sessionRegistry.getAllSessions(it, false).size()
    }
    return sessioncount;
}
4

1 回答 1

1

好的,这是 LoginController 如何填充错误消息的不同之处。在 1.3.7 和以前的安全插件中,代码如下所示:

msg = SpringSecurityUtils.securityConfig.errors.login.expired

但对于 2.1.1 和升级后的 spring 安全插件 1.2.7.3,代码需要使用如下上下文:

msg = g.message(code: "springSecurity.errors.login.disabled")

会话计数与添加会话侦听器所需的 web.xml 修改有关,但是在新的 spring 3.0 中它已被移动,因此新条目应如下所示:

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener> 
于 2013-01-11T02:09:57.333 回答