2014-01-19 136 views
1

除了spring-security-plugin外,我還在使用grails 2框架。帶彈簧安全性的Grails 2:defaultFailureUrl不能正常工作

我構建了一個自定義登錄表單,該表單應始終在主頁面上可見。

因此,用戶應該總是被重定向到主頁面。不管是否發生錯誤。

在成功登錄的情況下,一切正常,但在出現錯誤的情況下,閃存範圍在重定向期間丟失。所以我無法顯示認證失敗的原因。

根據文檔,只有參數'defaultFailureUrl'應該被調整。 但這並不按預期方式工作。

是否有任何其他參數需要實現此功能?

我的Config.groovy

// Added by the Spring Security Core plugin: 
grails.plugin.springsecurity.successHandler.defaultTargetUrl="/" 
grails.plugin.springsecurity.successHandler.alwaysUseDefault=true 
grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/' 
grails.plugin.springsecurity.auth.loginFormUrl = '/' 
grails.plugin.springsecurity.logout.postOnly = false // Logout through direct link 
grails.plugin.springsecurity.userLookup.userDomainClassName = 'de.msg.login.User' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'de.msg.login.UserRole' 
grails.plugin.springsecurity.authority.className = 'de.msg.login.Role' 

我希望有人能找出解決的辦法;)

+0

我有我自己的解決方案設置此。 flash.messages總是丟失,所以我不得不重寫LoginController的authFail()方法。我現在不用重定向,而是使用我的控制器。在我的控制器中,我重定向到我的應用程序的主頁面。 –

回答

0

正如我要顯示相同的登錄頁面上的消息提交登錄頁面後瞭解。

使用這個屬性可能會工作: Config.groovy中

failureHandler.useForward=false 

See this link

+0

感謝您的回答,但我認爲上述屬性默認爲'false'。 –