Spring Security實(shí)現(xiàn)退出登錄和退出處理器
在系統(tǒng)中一般都有退出登錄的操作。退出登錄后,Spring Security進(jìn)行了以下操作:
- 清除認(rèn)證狀態(tài)
- 銷(xiāo)毀HttpSession對(duì)象
- 跳轉(zhuǎn)到登錄頁(yè)面
配置退出登錄的路徑和退出后跳轉(zhuǎn)的路徑
//退出登錄配置
http.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login.html")
.clearAuthentication(true)
.invalidateHttpSession(true);
在網(wǎng)頁(yè)中添加退出登錄超鏈接
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<head>
<meta charset="UTF-8">
<title>主頁(yè)面</title>
</head>
<body>
<h1>主頁(yè)面</h1>
<a href="/logout" rel="external nofollow" >退出登錄</a>
</body>
</html>


退出成功處理器
我們也可以自定義退出成功處理器,在退出后清理一些數(shù)據(jù),寫(xiě)法如下:
自定義退出成功處理器
/**
* @Author yqq
* @Date 2022/05/17 18:09
* @Version 1.0
*/
public class LogoutSuccessHandler implements org.springframework.security.web.authentication.logout.LogoutSuccessHandler {
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
System.out.println("清楚一些數(shù)據(jù)");
response.sendRedirect("/login.html");
}
}
配置退出成功處理器
//退出登錄配置
http.logout()
.logoutUrl("/logout")
// .logoutSuccessUrl("/login.html")
.logoutSuccessHandler(new LogoutSuccessHandler())
.clearAuthentication(true)
.invalidateHttpSession(true);
測(cè)試



到此這篇關(guān)于Spring Security實(shí)現(xiàn)退出登錄和退出處理器的文章就介紹到這了,更多相關(guān)Spring Security退出登錄和退出處理器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 出現(xiàn)問(wèn)題javax.servlet.http.HttpServlet was not found解決方法
這篇文章主要介紹了java 出現(xiàn)問(wèn)題javax.servlet.http.HttpServlet was not found解決方法的相關(guān)資料,需要的朋友可以參考下2016-11-11
使用MyBatis查詢千萬(wàn)級(jí)數(shù)據(jù)量操作實(shí)現(xiàn)
這篇文章主要為大家介紹了如何使用MyBatis?查詢千萬(wàn)數(shù)據(jù)量的操作過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
詳解springboot通過(guò)Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào)的方法
這篇文章主要介紹了springboot通過(guò)Async注解實(shí)現(xiàn)異步任務(wù)及回調(diào),文中通過(guò)一個(gè)簡(jiǎn)單示例來(lái)直觀的理解什么是同步調(diào)用,在單元測(cè)試用例中,注入?SyncTask?對(duì)象,并在測(cè)試用例中執(zhí)行?doTaskOne(),doTaskTwo(),doTaskThree()?三個(gè)方法,具體實(shí)現(xiàn)方式跟隨小編一起看看吧2022-05-05
Java遠(yuǎn)程執(zhí)行shell命令出現(xiàn)java: command not found問(wèn)題及解決
這篇文章主要介紹了Java遠(yuǎn)程執(zhí)行shell命令出現(xiàn)java: command not found問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-07-07
SpringMVC中RequestBody注解的List參數(shù)傳遞方式
這篇文章主要介紹了SpringMVC中RequestBody注解的List參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

