Spring Boot退出登入注意點
退出登入Loginout是任何安全應用程式不可或缺的一部分。登出確保客戶執行退出後,所有敏感資訊都將被刪除或失效。Spring Security在會話中儲存認證資訊。Spring Security為應用程式自動處理以下任務。
- 使HTTP會話無效。
- 清理所有RememberMe身份驗證配置。
- 清除SecurityContextHolder。
- 將使用者重定向到配置的頁面。
在本文中,我們將使用spring boot來檢查登出功能。
GitHub儲存庫下載完整的應用程式。
由於Spring安全性將在登出過程中處理大部分繁重的工作,因此我們只需要為擴充套件WebSecurityConfigurerAdapter的自定義安全性配置類配置一些細節。這是啟用logout登出功能的基本配置:
protected void configure(HttpSecurity http) throws Exception { http .logout(logout -> logout ); } |
啟用登出功能時,我們應牢記以下幾點:
- 成功登出後,預設情況下,客戶將重定向到/login?logout。Spring安全性提供了更改URL的靈活性。
- 如果CSRF保護處於活動狀態(預設),Spring Security希望登出請求必須是POST型別,我們可以GET透過禁用CSRF保護來使用登出請求。
如果您需要對登出流程進行更多控制,以下是完整的參考:
protected void configure(HttpSecurity http) throws Exception { http .logout(logout -> logout .logoutUrl("/my/logout") .logoutSuccessUrl("/home") .logoutSuccessHandler(logoutSuccessHandler) .invalidateHttpSession(true) .addLogoutHandler(logoutHandler) .deleteCookies(cookieNamesToClear) ) } |
- logoutSuccessURL–幫助將使用者重定向到登入頁面登出,預設值為預設值/login?logout(在本例中,我們將重定向到主頁)。
- logoutSuccessHandler–處理程式,在登出完成後觸發。我們可以使用它來處理重定向或轉發到目的地。請注意,如果我們配置logoutSuccessHandler,logoutSuccessUrl()將會忽略。
- invalidateHttpSession–控制HTTP會話是否應該無效。預設值是true。
- deleteCookies–刪除所有安全cookie(以防我們在登入時進行設定。)
要自定義登出功能,可以透過新增LogoutHandler和/或LogoutSuccessHandler實現。
Logout登出使用者介面
我們需要為客戶提供選擇,以單擊登出logout連結。Spring Security提供了以下2個選項:
- 執行POST登出(這是預設設定,建議這樣做)。
- 透過禁用CSRF功能執行GET登出。
如果您無法執行POST請求並希望回退到GET登出請求,則需要在應用程式中進行以下更改。
- 禁用CSRF。
- 將POST請求轉換為UI上的GET。
protected void configure(HttpSecurity http) throws Exception { http.csrf().disable() ... } |
相關文章
- Flutter 登入退出功能注意事項Flutter
- Flask——登入、退出Flask
- 鬆哥手把手教你入門 Spring Boot + CAS 單點登入Spring Boot
- 進入與退出應用 / 登入與退出
- Auth Session 退出他人正登入的賬號、passport 退出登入SessionPassport
- 【ASP NET】UCenter實現多站點同步登入退出
- 玩轉spring boot——簡單登入認證Spring Boot
- Spring Security 實戰乾貨:實現自定義退出登入Spring
- 手把手教你學會 基於Spring-Boot,JWT的單點登入SpringbootJWT
- Spring Boot (十四): Spring Boot 整合 Shiro-登入認證和許可權管理Spring Boot
- Java Servlet session實現登入退出JavaServletSession
- Spring Cloud + Spring Boot企業架構之CAS SSO單點登入服務端環境搭建CloudSpring Boot架構服務端
- CAS SSO單點登入客戶端環境搭建之Spring Cloud + Spring Boot 企業架構客戶端CloudSpring Boot架構
- Spring Cloud + Spring Boot 企業架構之CAS SSO單點登入客戶端環境搭建CloudSpring Boot架構客戶端
- Spring Boot 整合 Sa-Token 實現登入認證Spring Boot
- Spring Security OAuth2 單點登入SpringOAuth
- win10怎麼退出登入賬戶_win10電腦退出賬戶登入的方法Win10
- CAS SSO單點登入客戶端環境搭建解析之Spring Cloud + Spring Boot企業架構客戶端CloudSpring Boot架構
- CAS SSO單點登入服務端環境搭建解析之Spring Cloud + Spring Boot企業架構服務端CloudSpring Boot架構
- Spring Cloud + Spring Boot + Mybatis 企業架構之CAS SSO單點登入服務端環境搭建CloudSpring BootMyBatis架構服務端
- Spring Cloud + Spring Boot + Mybatis 企業架構之CAS SSO單點登入客戶端環境搭建CloudSpring BootMyBatis架構客戶端
- Spring Cloud + Spring Boot + Mybatis 企業架構之CAS SSO單點登入服務端環境搭建CloudSpring BootMyBatis架構服務端
- 關於app的登入退出內容APP
- FreeBSD系統登入與退出(轉)
- Spring Boot系列(一):Spring Boot 入門篇Spring Boot
- Spring Boot入門Spring Boot
- Spring Boot入門(一):搭建Spring Boot專案Spring Boot
- Spring+ Spring cloud + SSO單點登入應用認證SpringCloud
- Spring Boot Dubbo 入門Spring Boot
- spring boot快速入門Spring Boot
- Spring Boot 熱載入Spring Boot
- Spring Boot HttpExchange 入門Spring BootHTTP
- Spring boot入門(一):快速搭建Spring boot專案Spring Boot
- spring-boot登陸過濾功能Springboot
- Spring Boot+微信小程式_儲存微信登入者的個人資訊Spring Boot微信小程式
- thymeltesys-基於Spring Boot Oauth2的掃碼登入框架Spring BootOAuth框架
- 使用Vue搭建電商後臺管理系統的注意點<登入頁>Vue
- 整合spring cloud雲架構 - SSO單點登入之OAuth2.0登入認證SpringCloud架構OAuth