2013-01-06 109 views
2

任何遇到失敗登錄錯誤消息的人都不會出現?Grails 2.1.1和彈簧安全消息

我正在將grails 1.3.7應用程序升級到grails 2.1.1,並且我對彈簧安全性核心功能有兩個問題。

首先,如果我嘗試使用無效登錄,則認證失敗,但在閃存消息中沒有錯誤消息。{}

其次,我正在使用這樣的方法來獲取活動會話的當前計數。它不再是準確的,因爲它只是增加並且不能識別註銷。

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

回答

1

好吧,這是在LoginController中差異如何填充錯誤消息。在1.3.7和以前的安全插件代碼如下:

msg = SpringSecurityUtils.securityConfig.errors.login.expired 

但2.1.1和升級後的春季安全插件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>