SpringSecurity退出功能實現的正確方式

2021-09-29 22:30:37 字數 1532 閱讀 4086

本文將介紹在spring security框架下如何實現使用者的"退出"logout的功能。其實這是乙個非常簡單的功能,我見過很多的程式設計師在使用了spring security之後,仍然去自己寫controller方法實現logout功能,這種做法就好像耕地,你有機械裝置你不用,你非要用牛。

煙雨紅塵

其實使用spring security進行logout非常簡單,只需要在spring security配置類配置項上加上這樣一行**:http.logout()。關於spring security配置類的其他很多實現、如:httpbasic模式、formlogin模式、自定義登入驗證結果、使用許可權表示式、session會話管理,在本號的之前的文章已經都寫過了。本節的核心內容就是在原有配置的基礎上,加上這樣一行**:http.logout()。

@configuration

@enablewebsecurity

public class secsecurityconfig extends websecurityconfigureradapter

}

加上logout配置之後,在你的「退出」按鈕上使用/logtou作為請求登出的路徑。

退出
logout功能我們就完成了。實際上的核心**只有兩行。

雖然我們簡簡單單的實現了logout功能,是不是還不足夠放心?我們下面就來看一下spring security預設在logout過程中幫我們做了哪些動作。

通常對於乙個應用來講,以上動作就是logout功能所需要具備的功能了。

如果上面的個性化配置,仍然滿足不了您的應用需求。可能您的應用需要在logout的時候,做一些特殊動作,比如登入時長計算,清理業務相關的資料等等。你可以通過實現logoutsuccesshandler 介面來實現你的業務邏輯。

@component

public class mylogoutsuccesshandler implements logoutsuccesshandler

}

然後進行配置使其生效,核心**就是一行logoutsuccesshandler。注意logoutsuccessurl不要與logoutsuccesshandler一起使用,否則logoutsuccesshandler將失效。

@configuration

@enablewebsecurity

public class secsecurityconfig extends websecurityconfigureradapter

}

spring security 安全框架

本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...

SpringSecurity認證流程

在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...

SpringSecurity使用技巧

1 鑑權處理頁通常包括四個方面的設定,分別是鑑權失敗 鑑權成功 未鑑權訪問 已鑑權但訪問了受保護許可權。如何自 定義這四類處理。鑑權失敗的預設處理頁面是 spring security login?login error 其預設處理類為 urlauthenticationfailurehandler...