Spring security默認實現了用戶退出的功能,用戶退出主要考慮退出后會話如何管理以及跳轉到哪個頁面。HttpSecurity類提供了logout()方法開啟退出登錄的支持,默認觸發用戶退出操作的URL為“/logout”,用戶退出時同時也會清除Session等默認用戶配置。 用戶退出登錄的邏輯是由過濾器LogoutFilter執行的,但是項目開發時一般不會選擇直接操作??LogoutFilter,而是通過LogoutConfigurer對LogoutFilter進行配置,HttpSecurity類logout()方法的返回值就是一個LogoutConfigurer對象,該對象提供了一系列設置用戶退出的方法。
用戶退出的主要方法
方法 | 作用 |
logoutUrl(String?logoutUrl) | 用戶退出處理控制URL,默認為post請求的/logout |
logoutSuccessUrl(String?logoutSuccessUrl) | 用戶退出成功后的重定向地址 |
logoutSuccessHandler( LogoutSuccessHandler?logoutSuccessHandler) | 用戶退出成功后的處理器設置 |
deleteCookies(String...?cookieNamesToClear) | 用戶退出后刪除指定Cookie |
invalidateHttpSession( boolean?invalidateHttpSession) | 用戶退出后是否立即清除Session,默認為true |
clearAuthentication( boolean?clearAuthentication) | 用戶退出后是否立即清除Authentication用戶認證信息,默認為true |
案例:用戶退出
1.設置用戶退出的請求路徑
項目后臺首頁main.html右上方有一個“注銷”菜單,可以在該菜單中設置用戶退出的請求路徑?
<a th:href="@{/logout}"><span class="hidden-xs">注銷</span>
</a>
2.效果測試
重啟項目。
使用正確的用戶信息登錄后進入后臺首頁,單擊后臺首頁頁面右上角的“注銷”。