實戰(zhàn)篇:Security JWT組合拳?|?附源碼
[導(dǎo)讀]簡介先贅述一下身份認證和用戶授權(quán):用戶認證(Authentication):系統(tǒng)通過校驗用戶提供的用戶名和密碼來驗證該用戶是否為系統(tǒng)中的合法主體,即是否可以訪問該系統(tǒng);用戶授權(quán)(Authorization):系統(tǒng)為用戶分配不同的角色,以獲取對應(yīng)的權(quán)限,即驗證該用戶是否有權(quán)限執(zhí)行該...
簡介
先贅述一下身份認證和用戶授權(quán):- 用戶認證(
Authentication):系統(tǒng)通過校驗用戶提供的用戶名和密碼來驗證該用戶是否為系統(tǒng)中的合法主體,即是否可以訪問該系統(tǒng); - 用戶授權(quán)(
Authorization):系統(tǒng)為用戶分配不同的角色,以獲取對應(yīng)的權(quán)限,即驗證該用戶是否有權(quán)限執(zhí)行該操作;
Web應(yīng)用的安全性包括用戶認證和用戶授權(quán)兩個部分,而Spring Security(以下簡稱Security)基于Spring框架,正好可以完整解決該問題。它的真正強大之處在于它可以輕松擴展以滿足自定義要求。原理
Security可以看做是由一組filter過濾器鏈組成的權(quán)限認證。它的整個工作流程如下所示:
圖中綠色認證方式是可以配置的,橘黃色和藍色的位置不可更改:FilterSecurityInterceptor:最后的過濾器,它會決定當前的請求可不可以訪問ControllerExceptionTranslationFilter:異常過濾器,接收到異常消息時會引導(dǎo)用戶進行認證;
實戰(zhàn)
項目準備
我們使用Spring Boot框架來集成。1.pom文件引入的依賴
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
org.springframework.boot
spring-boot-starter-undertow
mysql
mysql-connector-java
com.baomidou
mybatis-plus-boot-starter
3.4.0
org.projectlombok
lombok
com.alibaba
fastjson
1.2.74
joda-time
joda-time
2.10.6
org.springframework.boot
spring-boot-starter-test
2.application.yml配置spring:
application:
name: securityjwt
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/cheetah?characterEncoding=utf-8 




