2011-06-30 97 views
4

目前我在Spring Security 3中有一個自定義表單登錄頁面,它將表單數據發送到正確的認證URL。擴展Spring Security登錄過程

但是現在我需要在登錄之後但在點擊網站其他部分之前擴展此過程以支持安全問題。

我從閱讀文檔有幾個選項,但我很困惑,因爲要選擇正確的選項。

選項1:保留當前登錄系統並設置一個特殊角色,只允許用戶訪問安全問題頁面。如果他們成功通過安全問題過程,請將其正確角色添加到安全上下文中。

選項2:子類AbstractAuthenticationProcessing作爲登錄過程的一部分過濾和執行安全問題。這似乎更像春天,但我堅持如何支持多個頁面的問題與打破認證框架的其餘部分。

+1

我會使用選項1 – sourcedelica

回答

0

我最終使用了選項1. @ craftsman的答案不適合,因爲問題是每個用戶特定的。它實際上運作得非常好。

0

怎麼樣這種方法:

  1. 當用戶提交她的用戶名/密碼,把它們保存到她的會話。
  2. 將她重定向到您的問題。
  3. 當她完成回答你的問題時,看看你是否想讓她登錄。 3.1。如果是,則發佈她保存的憑證,以便Spring Security過濾器鏈可以捕獲和處理它們。 3.2。如果否,請將她帶回登錄頁面。 (或者你想在這種情況下做什麼)。
+0

這種方法的問題是我必須兩次檢查用戶密碼,因爲用戶在正確輸入密碼之後才能看到他們的安全問題。 – chotchki