<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## uaa-client-spring-boot-starter 在前面的項目中,咱們使用了 [04.security-core模塊](04.security-core%E6%A8%A1%E5%9D%97.md)來引用資源服務器,本模塊重構security-core,改用spring.factories 裝配。 ## 資源服務器 * 要訪問資源服務器受保護的資源需要攜帶令牌(從授權服務器獲得) * 客戶端往往同時也是一個資源服務器,各個服務之間的通信(訪問需要權限的資源)時需攜帶訪問令牌 ## 重構后流程 ![](https://img.kancloud.cn/fe/7a/fe7ac9108d57ec9d64e8d7d55fe5763b_1006x660.png) ## 功能 * 通用資源服務器校驗 * 通用的token校驗機制(TokenStore) * 通用的訪問控制(OpenAuthorizeConfigManager) * 通用的異常配置(SecurityHandlerConfig,ExceptionHandlerAdvice) ## com.open.capacity.uaa.client.UAAClientAutoConfig的作用 * 提供OAuth2AuthenticationProcessingFilter保護我們的API接口 * 提供白名單免除OAuth2AuthenticationProcessingFilter校驗API接口 * 提供方法級權限校驗 * 提供應用級API校驗 ### 開啟資源服務器 ![](https://img.kancloud.cn/d4/01/d4011c77e4fda181261578440f644e08_1686x747.png) * @EnableResourceServer引入OAuth2AuthenticationProcessingFilter過濾器 * 通過繼承 ResourceServerConfigurerAdapter 類來配置資源服務器 * OAuth2AuthenticationProcessingFilter代碼如何查看( sts中 (Ctrl +shift+T)) ![](https://box.kancloud.cn/a11aeff8aefd6fe6cdacf138e30bd923_839x493.png) ### ResourceServerSecurityConfigurer 可配置屬性 * tokenServices:ResourceServerTokenServices 類的實例,用來實現令牌業務邏輯服務 * resourceId:這個資源服務的ID,這個屬性是可選的,但是推薦設置并在授權服務中進行驗證 * tokenExtractor 令牌提取器用來提取請求中的令牌 * 請求匹配器,用來設置需要進行保護的資源路徑,默認的情況下是受保護資源服務的全部路徑 * 受保護資源的訪問規則,默認的規則是簡單的身份驗證(plain authenticated) * 其他的自定義權限保護規則通過 HttpSecurity 來進行配置 * 使用 DefaultTokenServices 在資源服務器本地配置令牌存儲、解碼、解析方式 ## uaa-client-spring-boot-starter的作用 > 包裝資源服務器,作為獨立單元為api-gateway,user-center等提供安全保障。 ## 開啟是否強制校驗 * 弱校驗:不傳token可以訪問,傳了token才會校驗 * 強校驗:api一定需要token ![](https://img.kancloud.cn/ab/08/ab08e54a288c10b9196b007ee3ed3682_1721x671.png) ## spring自動裝配 ![](https://img.kancloud.cn/6b/22/6b22c9c44c18ceca5bae21231eb5c05e_1685x433.png) ## uaa-client-spring-boot-starter代碼清單詳解 認證授權分離架構的oauth資源服務器,需要在代碼中設置一個門崗,驗證認證中心的token ,門崗代碼如下 ![](https://img.kancloud.cn/f5/96/f596ef7b0922d7c032bb927f256dad80_1719x609.png) 注意以下被注解,生產需要打開,配置用戶的api權限,注釋后有token即可訪問 `// 開啟spring security 注解 // @EnableGlobalMethodSecurity(prePostEnabled = true)` ### token票據驗證 ![](https://box.kancloud.cn/7eea410bb58d317640e825e7a3e7c20e_588x703.png) 票據 redis持久化 ![](https://img.kancloud.cn/41/d6/41d632727f7e5c264bf067df541dfa7c_1695x604.png) ![](https://img.kancloud.cn/49/26/492652dfb773eca75d89ae59514f4b22_1581x531.png) 作為一個認證授權分離的架構,采用此種門崗+票據驗證方式是一種效率最高的方式.讀相關源碼可以驗證此結論,此方案已生產驗證。 ![](https://box.kancloud.cn/1c347e7b86407be804f33384ee113f5f_963x218.png) ## @PreAuthorize 原理 [07.@PreAuthorize可以用來控制一個方法是否能夠被調用。](03.PreAuthorize%E6%B3%A8%E8%A7%A3%E5%88%86%E6%9E%90.md) ## 網關api權限設計 ![](https://img.kancloud.cn/c1/68/c1685025219f816bb33f1840592b5599_855x351.png) 相同用戶,不同應用的權限隔離 客戶端模式 : 客戶端A 申請的token ,可以訪問/api-user/menu/current , 客戶端B 申請的token,不讓訪問/api-user/menu/current 密碼模式: 客戶端模式 : 客戶端A admin用戶 申請的token ,可以訪問/api-user/menu/current , 客戶端B admin用戶 申請的token,不讓訪問/api-user/menu/current 參考issue:[https://gitee.com/owenwangwen/open-capacity-platform/issues/IRG23]() 網關引依賴 ![](https://img.kancloud.cn/11/b9/11b9dd2d759c8a097a81c0e5eaace90b_1594x285.png) 網關是否開啟基于應用隔離,代碼注釋了,只是基于token的合法性校驗,按建議開啟是否啟用api接口服務權限 ![](https://img.kancloud.cn/5c/2f/5c2f210132172402df18b9a824192230_1686x699.png) 通過clientID隔離服務權限 ![](https://img.kancloud.cn/f6/16/f616866b31c57c5237dfe504060ae33b_1688x735.png) (最新代碼從新封裝到網關,RbacService適用于api-gateway的api權限設計 ![](https://img.kancloud.cn/64/c4/64c4b08dbde7005c43e6b5090e013188_1836x571.png)) 通過應用分配服務權限 ![](https://img.kancloud.cn/80/36/803611b8b8c3de222f87d60410699a32_1918x887.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看