簡體   English   中英

Grails Spring Security:登錄成功/失敗后重定向

[英]Grails Spring Security: redirect after login success/failure

我在Grails應用程序中使用Spring Security插件的1.2版本。 我希望以下列方式處理登錄嘗試:

成功

  • 如果嘗試訪問受保護頁面觸發了登錄,請將其發送到該頁面
  • 如果用戶“直接”登錄,則將其重定向回主頁

失敗

  • 將它們發送到“再試一次”登錄頁面,並使用輸入的無效登錄詳細信息填寫表單(密碼字段除外)。 此“再試一次”登錄頁面與他們第一次登錄時使用的頁面不同

我已經看過插件手冊的“ 事件”部分,它似乎涵蓋了這一點。 但是,似乎沒有任何方法可以在這些事件處理程序中重定向用戶。

除了重新顯示登錄詳細信息之外,您基本上描述了它當前的工作方式,這很簡單。

當您單擊安全鏈接但未登錄時,會話中SavedRequest存儲SavedRequest以跟蹤您嘗試去的位置。 成功登錄后,將檢查此對象並從中構建重定向。 如果直接進入登錄頁面,則沒有保存的信息,因此會重定向到默認位置。 默認情況下,它是應用程序的根目錄( '/' ),但它是可配置的,例如

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/home'

要獲取先前輸入的登錄名重新顯示,使用SPRING_SECURITY_LAST_USERNAME在會話密鑰auth.gsp

<input type='text' class='text_' name='j_username' id='username'
       value="${session['SPRING_SECURITY_LAST_USERNAME']}" />

對我有用的是在Config.groovy中添加以下行

grails.plugin.springsecurity.successHandler.defaultTargetUrl = 'controllerName/actionName'

改變的是grails。 插件不是grails。 插件 (在'插件'之后注意沒有's')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM