spring security認證原始碼剖析

2021-10-01 20:05:41 字數 1108 閱讀 5850

spring-security 和shiro目前最主流的安全框架,很好的保護了系統的安全性。shiro實現的原理和spring-security具有異曲同工之妙,學會乙個框架,另乙個框架也會很容易上手。

1 spring-security流程

usernamepasswordauthenticationfilter

||providermanager

||daoauthenticationprovider

(abstractuserdetailsauthenticationprovider)

|| userdetailsservice 這個是最終自己實現的類

實現authenticationentrypoint介面,當匿名請求需要登入的介面時,攔截處理

實現authenticationsuccesshandler介面,當登入成功後,該處理類的方法被呼叫

實現authenticationfailurehandler介面,當登入失敗後,該處理類的方法被呼叫

實現accessdeniedhandler介面,當登入後,訪問介面沒有許可權的時候,該處理類的方法被呼叫

實現logoutsuccesshandler介面,登出的時候呼叫

inte***ce

authenticationmanager

.authenticate

() 認證管理者,

class

providermanger implement authenticationmanager}}

inte***ce

authenticationprovider.authenticate()

abstract abstractuserdetailsauthenticationprovider implement authenticationprovider

abstract

retrieveuser()

;}class

daoauthenticationprovider

extends

abstractuserdetailsauthenticationprovider

}

SpringSecurity自定義登入認證

spring security預設的登入表單只有username和password,但實際業務中我們可能需要使用其他的字段校驗,因此需要重寫認證部分。springsecurityfilterchain org.springframework.web.filter.delegatingfilterpr...

springsecurity Run As認證服務

zhangxin.security.service.roleservice.loadmenu role user,run as temp zhangxin.security.runasdemo.runasdate.showdate role admin,role run as temp object...

Token Cookie Session的認識了解

token token的意思是 令牌 是使用者身份的驗證方式,最簡單的token組成 uid 使用者唯一的身份標識 time 當前時間的時間戳 sign 簽名,由token的前幾位 雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器 還可以把不變的引數也放進token...