security

獲取token:
1.進入filter->ClientTokenEndpointFilter,根據trantType封裝相應的AuthenticationToken
調用相應的認證Provider(UsersAuthenticationProvider/ThirdAuthenticationProvider,這些在applicationContext-security.xml中配置,具體調用哪個provider,根據provider實現類的supports方法判斷)。provider調用authenticate()方法去從數據庫查詢用戶是否存在,如果是密碼登陸則繼續檢驗密碼。如果provider通過就是認證成功。
2.進入controller的方法,調用tokenGranter的grant方法,此方法也 根據grantType調用不同的tokenGranter(ResourceOwnerPasswordTokenGranter/ThirdTokenGranter),granter會去create accessToken,並存儲。

驗證token:
進入filter->ResourceAuthenticationProcessingFilter,token支持2中請求:放入header,或者放在url後面。調用ResourceAuthenticationManager的authenticate()進行token認證。token存在進行過期校驗,爲過期,重新查詢user信息並封裝到authentication中,並返回。

PlKo0ClUt3pWaTNm3KL6VGfNUKgcXCxRhmR4hwkbiMMzPYtcUDjNroGX6ppA6/+ONh/XUjSiJ2Go
x1bS79JoAgOQ/R2GnCYyCdHH+AG8tMjibEOjPqz4P/vAi/SRKoLAd3/i5P6RPokAprlKfcvqEYUu
V4EyezMVC4MtjCKCoEE=

MehwvUbM9pNWx4hXJwNuA5f99F64gJLvrKFinajXl7YSg7qyiyOwIhWiCZGOODh41VWMH4PTQBiK
N1yZ0fspes4/xsRTLsOtQTrbPKLd6HKnEy9DWuv5RpOqlgFLaBIo2m4XEwa/JzdiKjJrm2D8RQ4u
vv2yvNJDYRZEHTY3zvA=

PlKo0ClUt3pWaTNm3KL6VGfNUKgcXCxRhmR4hwkbiMMzPYtcUDjNroGX6ppA6/ ONh/XUjSiJ2Go
x1bS79JoAgOQ/R2GnCYyCdHH AG8tMjibEOjPqz4P/vAi/SRKoLAd3/i5P6RPokAprlKfcvqEYUu
V4EyezMVC4MtjCKCoEE=

MehwvUbM9pNWx4hXJwNuA5f99F64gJLvrKFinajXl7YSg7qyiyOwIhWiCZGOODh41VWMH4PTQBiK
N1yZ0fspes4/xsRTLsOtQTrbPKLd6HKnEy9DWuv5RpOqlgFLaBIo2m4XEwa/JzdiKjJrm2D8RQ4u
vv2yvNJDYRZEHTY3zvA=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章