成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

源碼-Spring Security Oauth2

AWang / 905人閱讀

摘要:給定一個作為方法參數(shù)傳遞的域?qū)ο髮?shí)例,確保類要綁定合適的權(quán)限。對或或檢查與驗(yàn)證。檢查是否在客戶端的權(quán)限范圍內(nèi)。匹配默認(rèn)的前綴字符串是的,如果匹配到則授權(quán),如授權(quán)范圍。實(shí)現(xiàn)類輪詢所有配置的每個配置,并且如果全部是肯定才能授予訪問權(quán)限。

03.01-源碼-Spring Security Oauth2

@(技術(shù)-架構(gòu))[源碼, 權(quán)限, Security, Oauth2]

Oauth2 是一個開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。Spring-Security-Oauth2是基于Spring-Security安全框架實(shí)現(xiàn)Oauth2的標(biāo)準(zhǔn)授權(quán)驗(yàn)證,以下是對Spring-Security-Oauth2的源代碼分析。

1、相關(guān)包說明

Spring-Security-Core:封裝了驗(yàn)收、授權(quán)流程核心基礎(chǔ)類。
Spring-Security-Web:是基于HTTP實(shí)現(xiàn)對安全驗(yàn)證的封裝。
Spring-Security-Config:實(shí)現(xiàn)了Spring Security命名空間的配置。
Spring-Security-Oauth2:通過Spring Security框架,實(shí)現(xiàn)Oauth2標(biāo)準(zhǔn)驗(yàn)證流程。

2、Spring-Security-Core 分析
① 分層說明

org.springframework.security.access

權(quán)限訪問處理層,包含了訪問權(quán)限annotation的配置注解,訪問驗(yàn)證的事event,訪問權(quán)限配置的表達(dá)式解析expression,對訪問權(quán)限的方法攔截器intercept,權(quán)限方法注解的實(shí)現(xiàn)method,驗(yàn)證的post過程prepost,還有核心的授權(quán)方法與管理vote。

核心類訪問決策器AccessDecisionVoter
AbstractAclVoter:提供編寫域?qū)ο驛CL選項的幫助方法,沒有綁定到任何特定的ACL系統(tǒng)。
AclEntryVoter:給定一個作為方法參數(shù)傳遞的域?qū)ο髮?shí)例,確保類要綁定合適的權(quán)限AclService。
AuthenticatedVoter:對 IS_AUTHENTICATED_FULLY或IS_AUTHENTICATED_REMEMBERED或 IS_AUTHENTICATED_ANONYMOUSLY檢查與驗(yàn)證。
ClientScopeVoter[Oauth2] 檢查是否在客戶端的權(quán)限范圍內(nèi)。
Jsr250Voter:通過JSR-250配置的注解進(jìn)行授權(quán)。
PreInvocationAuthorizationAdviceVoter:使用@PreFilter和@PreAuthorize注釋生成的PreInvocationAuthorizationAdvice來授權(quán)
RoleVoter:匹配默認(rèn)的前綴字符串是ROLE_的ConfigAttribute,如果匹配到則授權(quán),針對角色的授權(quán)。
RoleHierarchyVoter:擴(kuò)展RoleVoter使用RoleHierarchy定義來確定在授權(quán)給當(dāng)前用戶的角色。
ScopeVoter:匹配默認(rèn)的前綴字符串是SCOPE_的ConfigAttribute,如果匹配到則授權(quán),如:授權(quán)范圍SCOPE_READ、SCOPE_WRITE。

int ACCESS_GRANTED = 1; //決策結(jié)果-允許
int ACCESS_ABSTAIN = 0; //決策結(jié)果-放棄
int ACCESS_DENIED = -1; //決策結(jié)果-拒絕
//決策方法
int vote(Authentication authentication, S object, Collection attributes);

核心類訪問控制決策管理AccessDecisionManager
AffirmativeBased實(shí)現(xiàn)類輪詢所有配置 AccessDecisionVoter的,并且如果有的話AccessDecisionVoter肯定地授予訪問權(quán)限。
ConsensusBased實(shí)現(xiàn)類輪詢所有配置 AccessDecisionVoter的,并且如果AccessDecisionVoter肯定大于否定的數(shù)量的話就授予訪問權(quán)限,相等的話就看AbstractAccessDecisionManager.isAllowIfAllAbstainDecisions()方法(默認(rèn)為false)。
UnanimousBased實(shí)現(xiàn)類輪詢所有配置AccessDecisionVoter的每個配置,并且如果AccessDecisionVoter全部是肯定才能授予訪問權(quán)限。

//決策方法,如果決策不通過就拋出異常
void decide(Authentication authentication, Object object,Collection configAttributes) throws AccessDeniedException,InsufficientAuthenticationException;

org.springframework.security.authentication

權(quán)限認(rèn)證處理層,實(shí)現(xiàn)了對權(quán)限的管理和認(rèn)證,dao封裝了用戶信息的訪問,encoding封裝了對用戶密碼加密的處理,event實(shí)現(xiàn)對授權(quán)驗(yàn)證的成功、失敗等事件,jaas是對Java Jaas授權(quán)API的封裝,rcp提供了遠(yuǎn)程授權(quán)驗(yàn)證與管理。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/68573.html

相關(guān)文章

  • Spring Cloud OAuth 微服務(wù)內(nèi)部Token傳遞的源碼實(shí)現(xiàn)解析

    摘要:源碼非常簡單談?wù)剬?shí)現(xiàn)的問題當(dāng)請求上線文沒有如果調(diào)用會直接,這個肯定會報錯,因?yàn)樯舷挛氖∪绻O(shè)置線程隔離,這里也會報錯。導(dǎo)致安全上下問題傳遞不到子線程中。歡迎關(guān)注我們獲得更多的好玩實(shí)踐 背景分析 showImg(https://segmentfault.com/img/remote/1460000018899024?w=494&h=245); 1.客戶端攜帶認(rèn)證中心發(fā)放的token,...

    Michael_Ding 評論0 收藏0
  • Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄

    摘要:驗(yàn)證碼的發(fā)放校驗(yàn)邏輯比較簡單,方法后通過全局判斷請求中是否和手機(jī)號匹配集合,重點(diǎn)邏輯是令牌的參數(shù) spring security oauth2 登錄過程詳解 ? showImg(https://segmentfault.com/img/remote/1460000012811024); ? 定義手機(jī)號登錄令牌 /** * @author lengleng * @date 2018/...

    陸斌 評論0 收藏0
  • 基于spring-security-oauth2實(shí)現(xiàn)單點(diǎn)登錄(持續(xù)更新)

    摘要:認(rèn)證服務(wù)器和瀏覽器控制臺也沒有報錯信息。這里簡單介紹下如何查閱源碼,首先全局搜索自己的配置因?yàn)檫@個地址是認(rèn)證服務(wù)器請求授權(quán)的,所以,請求認(rèn)證的過濾器肯定包含他。未完待續(xù),下一篇介紹資源服務(wù)器和認(rèn)證服務(wù)器的集成。 基于spring-security-oauth2-實(shí)現(xiàn)單點(diǎn)登錄 文章代碼地址:鏈接描述可以下載直接運(yùn)行,基于springboot2.1.5,springcloud Green...

    妤鋒シ 評論0 收藏0
  • 前后端分離項目 — SpringSocial 綁定與解綁社交賬號如微信、QQ

    摘要:我們以微信為例,首先我們發(fā)送一個請求,因?yàn)槟阋呀?jīng)登錄了,所以后臺可以獲取當(dāng)前是誰,然后就獲取到請求的鏈接,最后就是跳轉(zhuǎn)到這個鏈接上面去。 1、準(zhǔn)備工作 申請QQ、微信相關(guān)AppId和AppSecret,這些大家自己到QQ互聯(lián)和微信開發(fā)平臺 去申請吧 還有java后臺要引入相關(guān)的jar包,如下: org.springframework.security....

    tigerZH 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<