回答
您可以添加彈簧安全濾波器鏈中的新濾波器。該新文件將應用於/logout
網址。通過此過濾器時,您可以將當前頁面保存在字段變量中。當通過過濾器返回時。您可以將請求重定向到保存的URL。我認爲這可以提供幫助。您可以通過使用獲取當前頁面的URL。 Referer
標題在Request
對象中。
只是一個想法:
我們如何保持一堆訪問過的頁面。可能最多3個條目。並從註銷重定向用戶。
配置過濾器或擴展春季安全過濾器,以保持會話的堆棧約最後兩個訪問的網址
在註銷配置servlet作爲
logout-success-url
。現在得到會話棧的URL和現在無效會話並重定向用戶到該頁面
您也可以利用referrer header作爲維傑提到
不確定這個問題是指哪個Spring版本 - 但自Spring 3.0以來,標準org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler
上有一個useReferer
屬性。
因此,所有你需要做的就是配置它這樣和註銷將重定向到任何地方的用戶來自何處:
<bean id="logoutSuccessHandler" class="org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler">
<property name="useReferer" value="true"/>
</bean>
<security:http>
<security:logout logout-url="/logout" success-handler-ref="logoutSuccessHandler" />
</security:http>
我用這個,它工作正常。但是,當我從受保護的頁面註銷它去登錄表單...在這種情況下有什麼辦法去不同的URL? (即主頁) – Mat 2012-07-12 12:53:58
我不認爲這是可能的標準SimpleUrlLogoutSuccessHandler。您可以擴展它並覆蓋'determineTargetUrl(HttpServletRequest請求,HttpServletResponse響應)'方法來實現自定義行爲。但是你需要知道,如果網址(由'super.determineTargetUrl(請求,響應)來確定;')這是被重定向到被保護。我沒有找到一個方法來做到這一點不是檢查targetUrl這個字符串其他那裏。 – meyertee 2012-07-14 09:04:37
你需要的是一個簡單的LogoutSuccessHandler
@Component
public class CustomLogoutSuccessHandler extends
SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler {
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse
response, Authentication authentication)
throws IOException, ServletException {
if (authentication != null) {
System.out.println(authentication.getName());
}
response.setStatus(HttpStatus.OK.value());
response.sendRedirect(request.getHeader("referer"));
}
後來在您的配置方法中調用它,例如
.logout().logoutSuccessHandler(customLogoutSuccessHandler)
這會將您重定向到引用URL。
- 1. 重定向註銷春季安全
- 2. 春季安全:註銷時總是重定向到invalid-session-url
- 3. 春季安全註銷
- 4. 春季安全:重定向URL擅自
- 5. 春季安全註銷異常
- 6. 春季安全註銷不起作用
- 7. 春季安全3.2:無法註銷
- 8. 登錄註銷春季安全用例
- 9. 春季安全登錄註銷的URI
- 10. 春季安全註銷導致NullPointerException
- 11. 春季安全登錄/註銷問題
- 12. 春季安全註銷發出
- 13. 春季安全:刪除cookie中註銷
- 14. 春季安全註銷確認
- 15. 春季安全登錄/註銷登錄
- 16. 春季安全登錄/註銷問題
- 17. 春季安全 - 顯示註銷消息
- 18. 春季安全重定向如果
- 19. 春季安全註銷重定向到註銷成功,然後立即成爲無效會話頁面
- 20. 春季安全登錄/註銷url相關問題
- 21. 春季安全重定向url和單頁散列片段
- 22. 春季安全元註釋
- 23. 春季開機和春季安全總是重定向到登錄
- 24. 春季安全登錄/註銷 - 運行自定義代碼
- 25. 安全註釋在春季安全
- 26. 春季安全不會重定向到主頁
- 27. 春季安全預認證重定向到錯誤頁面
- 28. 春季安全http-form重定向到404頁
- 29. 春季開機安全始終重定向到home.jsp
- 30. Grails的春季安全重定向到錯誤的端口
你肯定也想這樣?用戶訪問某個安全頁面時,是否希望在註銷後允許他在該安全頁面上訪問? – 2011-05-25 06:15:41
@Vijay可能是因爲來賓 – 2011-05-25 06:17:34
主要是我想他們被送回登錄屏幕。登錄頁面將它們發送到最初請求的頁面,一旦它們已經成功登錄,我希望這是他們註銷的地方。 – 2011-05-27 04:04:33