二、Spring Security的使用
一、課程介紹
1.1 Spring Security介紹:認證、許可權攔截、資料庫、許可權快取以及自定義決策
1.2 環境搭建和使用
二、spring Security的架構

三、Spring Security的許可權攔截
3.1 Spring Security攔截器的處理過程

spring security提供了很多的過濾器,攔截servlet請求,將這些請求轉交給認證管理器和訪問決策管理器,並強制安全性
3.2 spring security的常見filter
3.2.1 率先執行的過濾器,判斷使用者的session是否已經存在securityContext的上下文中,如果存在則把securityContext拿出來,放在SecurityContextHolder中,供其它部分使用。

過濾器的頂端,第一個起作用的過濾器
3.2.2 LogoutFilter
3.2.3 AbstractAuthenticationProcessingFilter:處理form登陸的過濾器
3.2.4 DefaultLoginPageGeneratingFilter :生成預設的登陸頁面
3.2.5 BasicAuthenticationFilter:
3.2.6 其它

Spring Security的常見過濾器
四、Spring Security的資料庫管理


當使用資料庫管理使用者時,我們需要手動實現UserDetailService中的loadUserByUsername()方法

loadUserByUsername()返回的UserDetail物件,其中包含了當前使用者的許可權集合

五、Spring Security的許可權快取

UserDetailService快取
六、Spring Security的自定義決策

七、Case:Spring Boot+Spring Security
7.1 搭建spring boot環境
7.2 引入spring-security的依賴包,此時訪問controller,就需要輸入使用者名稱密碼來訪問

測試Controller如下

此時訪問url就需要輸入使用者名稱密碼
7.3 對訪問策略進行配置

對http請求的策略配置

對靜態資源的策略配置
八、Spring Security的常見Case
8.1 只要能登陸即可:網頁是記錄專案裡的工具等,安全性要求不高。只要組內同事能登陸即可

ADMIN使用者只要登陸即可訪問,zhouzhou是基於角色的,然後在Controller中新增如下的註解

九、資料庫管理使用者

定義實現UserDetaisService的類,其中返回一個UserDetails物件,UserDetails物件有如下的實現類

UserDetail的實現,其中需要如下的欄位。密碼需要自定義校驗規則

自定義密碼的校驗規則

設定校驗時定義的UserDetailService類,同時設定密碼校驗的類
十、總結
10.1 優點

優點
10.2 缺點
相關文章
- Spring Security(二)Spring
- Spring Security使用(二) 非同步登入Spring非同步
- 使用JWT的Spring Security - JakubLeškoJWTSpring
- 使用Spring Security控制會話Spring會話
- Spring Security(二)登入與安全控制Spring
- Spring Security專案Spring MVC開發RESTful API(二)SpringMVCRESTAPI
- Spring Security系列之入門應用(二)Spring
- Spring Security(二)--WebSecurityConfigurer配置以及filter順序SpringWebFilter
- Spring SecuritySpring
- Spring Boot —— Spring SecuritySpring Boot
- Spring Security原始碼分析八:Spring Security 退出Spring原始碼
- 01-Spring Security框架學習--入門(二)Spring框架
- Spring Security 中的 BCryptPasswordEncoderSpring
- Spring Security:使用者和Spring應用之間的安全屏障Spring
- Spring Security原始碼分析九:Spring Security Session管理Spring原始碼Session
- [譯] 學習 Spring Security(八):使用 Spring Security OAuth2 實現單點登入SpringOAuth
- Spring Boot整合Spring SecuritySpring Boot
- Spring Boot SecuritySpring Boot
- Spring Security + JWTSpringJWT
- Spring Security(6)Spring
- Spring Security(7)Spring
- Spring Security(8)Spring
- 初探Spring SecuritySpring
- Spring Security 上Spring
- spring security(一)Spring
- 如何從Spring Security 5遷移到Spring Security 6/Spring Boot 3Spring Boot
- Spring security(四)-spring boot +spring security簡訊認證+redis整合Spring BootRedis
- 比較Spring Security6.X 和 Spring Security 5.X的不同Spring
- SpringBoot整合Spring SecuritySpring Boot
- [譯]Spring Security ArchitectureSpring
- Spring Security進階Spring
- Spring Security OAuth 2.0SpringOAuth
- Spring Security詳解Spring
- Spring Cloud Security:Oauth2結合JWT使用SpringCloudOAuthJWT
- Spring Security方法級別授權使用介紹Spring
- Spring Security 強制退出指定使用者Spring
- Spring Security原始碼分析十一:Spring Security OAuth2整合JWTSpring原始碼OAuthJWT
- Spring Security中的SecurityContext和SecurityContextHolderSpringContext