1. 程式人生 > 其它 >Spring Security 原始碼學習(一): 初識 Spring Security

Spring Security 原始碼學習(一): 初識 Spring Security

【參考文章】: 官網地址

1. 簡介

Spring Security 一個基於 Spring AOP 和 Servlet 過濾器的一個功能強大且高度可定製的身份驗證和訪問控制框架。在 Web 請求級和方法呼叫級處理認證和授權。

認證: 判斷使用者是否為系統合法使用者
授權: 判斷該使用者是否有許可權訪問資源

2. 初體驗

2.1 新增依賴

通過新增下面的依賴,就可以快速為系統新增一層簡單的安全訪問框架

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.2 基本使用

新增依賴並啟動服務後, 服務已經被 Spring Security 所保護

預設情況下,所有介面都需要在認證後才能訪問. 此時訪問任何介面被會被重定向到 Spring Security 預設的登入介面, 地址為 ip:port/login

預設的使用者名稱為user, 預設密碼為系統啟動時隨機生成的UUID字串,會列印在控制檯

下面是預設生成的賬戶資訊

輸入正確的使用者名稱和密碼資訊, 即可進行請求訪問

3. 基本原理

3.1 Filter簡介

Servlet Filter 又稱 Servlet 過濾器,它是在 Servlet 2.3 規範中定義的,能夠對 Servlet 容器傳給 Web 資源的 request 物件和 response 物件進行預處理操作

3.2 實現原理

Spring Security 的本質是添加了一個過濾器鏈(由多個過濾器組成), 在請求處理前進行認證和授權操作, 如果認證或者授權失敗,則拒絕訪問資源