security認證流程簡單分析

2021-10-17 05:28:13 字數 1673 閱讀 9965

1 簡單的認證流程:

– 前台填寫表單資料,封裝成使用者物件—》交給認證管理器(相當於loginservice)-----通過-》

userdetailservice獲取資料庫中的使用者和密碼—》呼叫密碼器匹配器與表單物件中的使用者名稱和密碼進行匹配-》

進行認證—》認證成功放行資源,將使用者資訊,許可權封裝在securitycontent裡,放到session中–》認證失敗攔截到登入頁面

2security認證原理

– springsecurity是基於filter實現認證和授權,底層通過filterchainproxy**去呼叫各種filter(filter鏈),

filter通過呼叫authenticationmanager(認證管理器)完成認證 ,通過呼叫accessdecisionmanager(授權管理器)完成授權

3 securitycontextpersistencefilter

– 這個filter是整個filter鏈的入口和出口,請求開始會從securitycontextrepository中,獲取securitycontext物件並設定給securitycontextholder。在請求完成後將

– securitycontextholder持有的securitycontext再儲存到配置好的

– securitycontextrepository中,同時清除securitycontextholder中的securitycontext

4 usernamepasswordauthenticationfilter

– 預設攔截「/login」登入請求,處理表單提交的登入認證,將請求中的認證資訊包括

username,password等封裝成usernamepasswordauthenticationtoken,然後呼叫

authenticationmanager的認證方法進行認證。

5basicauthenticationfilter

– 基本認證,httpbasic登入,彈出登入框登入

6 rememberauthenticationfilter

– 記住我

7 anonymousauthenticationfilter

– 匿名filter,用來處理匿名訪問的資源,如果securitycontext中沒有authentication,

就會建立匿名的token(anonymousauthenticationtoken),然後通過

securitycontexthodler設定到securitycontext中。

8 exceptiontranslationfilter

– 用來捕獲filterchain所有的異常,進行處理,但是只會處理 authenticationexception和accessdeniedexception,異常,其他的異常 會繼續丟擲。

9 filtersecurityinterceptor

– 用來做授權的filter,通過父類(abstractsecurityinterceptor.beforeinvocation)呼叫

accessdecisionmanager.decide方法對使用者進行授權。

我的Security 認證考試筆記

本人已在安全行業工作達兩年之久,然而一直缺少安全類證書,所以才決定培訓s 以下僅代表本人一些見解。我於1月11日參加通過了security 考試,下面我跟大家講述下我的備考經歷和考試經過。備考經歷 1 我覺得首先聽課的時候要把考點在講義上適當標記下,聽課期間可以開始做題了,到老師講解習題的時候可以針...

Security 認證考試經驗分享 備考篇(三)

我於11月11日參加並通過了security 考試,下面我從兩個方面跟大家講述下我的備考和考試經過。一 備考經歷 security 官方教材怎麼用?security 官方教材我個人覺得就兩個作用 1 把題庫先刷一遍,不管做的來做不來,快速刷題,我每次都是刷到腦袋反應 100多道題吧 很慢就停下休息一...

OAuth認證流程

1.客戶端去 申請乙個api key secret 例如豆瓣網的 string apikey 0c51c1ba21ad8cfd24f5452e6508a6f7 string secret 359e16e5e5c62b6e 2.獲取到豆瓣的服務,帶著鑰匙訪問豆瓣 secret 3.獲取到授權的鏈結位址...