2013-05-07 70 views
0

使用Spring Security preauthentication,我的網絡應用程序在點擊InsufficientAuthenticationException後重定向到/login_disabled.html。的applicationContext-安全preauth.xml的Spring Security「exceptionMappings」

樣品

 <beans:property name="exceptionMappings"> 
      <beans:props> 
       <beans:prop key="org.springframework.security. 
InsufficientAuthenticationException"> 
        /login_disabled.html 

在此基礎上post,看來我應該能夠重新定向再次登錄該用戶。

我只需要將用戶重定向到負責認證的網頁?

回答

1

這對我來說不是很清楚這裏有什麼問題。如果您已設置了表單登錄,則無需進一步配置即可自動完成重定向到登錄頁面。如果用戶嘗試訪問受保護的頁面而未經過身份驗證,則ExceptionTranslationFilter將調用AuthenticationEntryPoint來啓動身份驗證。

使用ExceptionMappingAuthenticationFailureHandler映射InsufficientAuthenticationException到重定向的URL無論如何都不會工作,因爲:

  1. 這不表示認證failre。它表示用戶在嘗試訪問受保護資源時只進行匿名身份驗證的情況。 (相對於驗證失敗,例如輸入錯誤的憑據,或者用戶已禁用狀態)
  2. 它甚至不會被拋出。 (僅作爲上述鏈接代碼中的參數實例化並傳遞)
+0

如果我使用智能卡進行身份驗證,用戶在登錄時選擇證書該怎麼辦? – 2013-05-07 19:38:25

+1

如果你有一個自定義的表單登錄實現,那麼我認爲你需要的只是從'引用的正確配置的'LoginUrlAuthenticationEntryPoint' bean。 – zagyi 2013-05-07 19:53:11

+0

如果我使用自定義預認證,Spring Security如何知道如何重新進行身份驗證,即將用戶重定向到登錄頁面? – 2013-05-07 20:33:14