授權 authorization
由spring***根據spring-security.xml 建立spring-security的物件,並把它們交給spring容器管理
當乙個請求過來,首先經過 delegatingfilterproxy (**過濾器),由它將請求交給spring-security 內部的過濾器進行處理(11 個)
usernamepasswordauthenticationfilter (基於使用者名稱密碼的認證過濾器)
收集表單資料,將表單資料封裝至令牌物件 usernamepasswordauthenticationtoken
令牌物件(型別authentication)中由四個屬性
principal 對應著使用者名稱
credentials 對應著密碼
authorities -- 角色(多個,集合)
authenticated false 是否已認證
將令牌資訊交給了 authentication-manager(認證管理器物件)
認證管理器呼叫認證提供者(authentication-provider)
再由認證提供者呼叫 userdetailservice (介面)loaduserbyusername 方法返回乙個使用者詳情物件(userdetail)
將使用者詳情物件返回給 認證管理器, 認證管理器呼叫乙個密碼編碼器完成密碼對比(令牌中的密碼和使用者詳情物件的密碼做對比)
認證通過,更新令牌(型別authentication)資訊
principal 儲存使用者詳情
credentials -- 沒用了
authorities 角色資訊(剛從使用者詳情中獲得的)
authenticated true(已認證)
將認證通過的令牌物件存入 securitycontext(安全上下文)
[外鏈轉存失敗(img-ipdytl1h-1568542117053)(spring security.png)]
請求傳送到伺服器後,被封裝為 request 物件,到達 dispatcherservlet(springmvc 的入口)
handleradapter(處理器介面卡)
再由視**析器(viewresolver)
如果執行過程**現了異常:
jsp 動態生成 html **,返回響應
[外鏈轉存失敗(img-n00judj0-1568542117056)(springmvc.png)]
生成乙個簽名
spring security 安全框架
本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...
SpringSecurity認證流程
在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...
SpringSecurity使用技巧
1 鑑權處理頁通常包括四個方面的設定,分別是鑑權失敗 鑑權成功 未鑑權訪問 已鑑權但訪問了受保護許可權。如何自 定義這四類處理。鑑權失敗的預設處理頁面是 spring security login?login error 其預設處理類為 urlauthenticationfailurehandler...