宣告:本文參考:茶飲月的csdn文章:Spring Security學習記錄(四) —— JSON Web Token實踐(下)
上篇文章有朋友評論,如何使用token實現許可權驗證,今天就跟大家分享一下,僅供參考。
首先簡單介紹一下JSON web Token:簡稱JWT,本質是一個token,是一種緊湊的URL安全方法,用於在網路通訊的雙方之間傳遞。廢話不多說,直接上專案。
新建一個spring boot 專案,選擇依賴這塊注意一下,本文使用jpa進行資料庫操作,thymeleaf模板引擎
2。新增其他額外依賴
3。設定application。properties
4。新建實體類和上篇文章相同,在次不多贅述
5。新建JWT工具類,實現生成token,驗證token,從token中獲取使用者方法
6。SecurityContextHolder中儲存的是Authentication物件,所以需要在SysUser基礎封裝一層認證使用者
7。實現驗證Token的過濾器
這裡需要注意,原有的request是沒有setHeader方法的,在這需要自己實現一個request,MutableHttpServletRequest
這樣request就有setHeader方法了,可以將token放入傳輸
8。配置下Spring Security,主要就是關閉一些不用的過濾器,實現自己的驗證過濾器。
9。配置的主要內容就是這些,下面就是簡單的登入驗證了,首先是service層根據使用者名稱查詢使用者
這裡作為測試,選用session儲存token,實際可以根據需要選擇別的存取方式
10。controller,主要是登入方法,和一個測試只有管理員許可權的使用者才能使用的方法
到此,關鍵內容就介紹完了,下面執行測試一下效果
11。啟動專案訪問:http://localhost:8080/login
用管理員賬戶登入成功
管理員賬戶登入成功訪問/detail
普通使用者登入成功訪問/detil會跳轉到出錯頁面