我正在從grails 2.2.2遷移到grails 2.3.4以避免2.2.2中的bug,其中spring security屬性消息中的文本值不顯示,但我遇到了各種問題。之前工作過的東西,現在不行。如何在Grails Spring Security 2.0中創建登錄/頁面inital屏幕?
問題
當我運行的Grails應用程序,初始默認頁面是index.gsp中這是標準的功能,但安裝和配置Spring Security的核心,春季安全LDAP和彈簧securiy UI插件後,我想使我的默認頁面成爲/login/auth。
在以前的版本,我已經通過它的UrlMappings.groovy配置文件通過簡單的註釋,替換或刪除這一行
"/"(view:"/index")
這一個
"/"(view:"/login/auth")
我的配置完成.groovy被設置爲如果認證成功將我帶到主頁
grails.plugin.springsecurity.userLookup.userDomainClassName = 'security.Person'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'security.PersonAuthority'
grails.plugin.springsecurity.authority.className = 'security.Authority'
grails.plugin.springsecurity.requestMap.className = 'security.Requestmap'
grails.plugin.springsecurity.securityConfigType = 'Requestmap'
grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/home/'
,並在引導我Requestmap條目(如果他們是對這個問題的任何重要情況如下):
for (String url in [
'/', '/index', '/index.gsp', '/**/favicon.ico',
'/**/js/**', '/**/css/**', '/**/images/**',
'/login', '/login.*', '/login/*',
'/logout', '/logout.*', '/logout/*']) {
new Requestmap(url: url, configAttribute: 'permitAll').save()
}
new Requestmap(url: '/home/*', configAttribute: 'IS_AUTHENTICATED_FULLY').save()
事實證明,當我這樣做......尤里卡登錄/ AUTH來一旦應用程序啓動,但是當我輸入正確的身份驗證憑證時,它似乎沒有進行身份驗證,它確實會發出「輕微的小閃爍」,並再次顯示自身。
但是,如果我刪除此行
"/"(view:"/login/auth")
,並把此一回在
"/"(view:"/index")
,然後當我重新啓動應用程序,我手動登錄/ AUTH,並把正確的然後它正確地把我帶到主頁。
質詢
我錯過任何配置設置的任何地方,這將使該登錄/ AUTH第一頁(也讓我進行身份驗證)?
我不確定這是否應該是一個單獨發佈的問題,但現在通過設計登錄頁面它是插件的一部分,它是由我的代碼生成和部分代碼之前,我可以在我的意志風格。我是否必須在我的應用程序中複製粘貼LoginController和Auth.gsp以定製視圖還是有更好的首選方式?
在此先感謝。
使默認的登錄網址
/login/auth
,你點燃一個燈泡。我可以通過在視圖和我自己的auth.gsp下創建一個登錄文件夾來自定義登錄屏幕。無需將LoginController複製到我的代碼庫 – Viriato謝謝,「Spring Security通過跟蹤推薦URL工作」幫助我找出了與我的應用程序有關的問題。登錄頁面保持重定向到一個URL,該URL在用戶通過鏈接進入登錄頁面之前顯示的默認頁面上由Javascript調用。事實證明,該腳本無法訪問該URL,因爲它受Spring Security保護;大概在失敗的嘗試Spring Security記住登錄後的URL。根據您的提示,我將該URL添加到無需登錄即可訪問的頁面列表中。現在好了。 – HumanInDisguise