<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spring Security 和 Shiro 該如何選擇?

          共 2297字,需瀏覽 5分鐘

           ·

          2021-11-26 21:38

          來源 | https://blog.csdn.net/weixin_38405253/article/details/115301113

          要知道Shiro和Spring Security該如何選擇,首先要看看兩者的區(qū)別和對比

          Shiro

          Apache Shiro是一個(gè)強(qiáng)大且易用的Java安全框架,能夠非常清晰的處理認(rèn)證、授權(quán)、管理會(huì)話以及密碼加密。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應(yīng)用程序,從最小的移動(dòng)應(yīng)用程序到最大的網(wǎng)絡(luò)和企業(yè)應(yīng)用程序。

          執(zhí)行流程

          特點(diǎn)

          1. 易于理解的 Java Security API;
          2. 簡單的身份認(rèn)證(登錄),支持多種數(shù)據(jù)源(LDAP,JDBC,Kerberos,ActiveDirectory 等);
          3. 對角色的簡單的簽權(quán)(訪問控制),支持細(xì)粒度的簽權(quán);
          4. 支持一級(jí)緩存,以提升應(yīng)用程序的性能;
          5. 內(nèi)置的基于 POJO 企業(yè)會(huì)話管理,適用于 Web 以及非 Web 的環(huán)境;
          6. 異構(gòu)客戶端會(huì)話訪問;
          7. 非常簡單的加密 API;
          8. 不跟任何的框架或者容器捆綁,可以獨(dú)立運(yùn)行。

          如果您正在學(xué)習(xí)Spring Cloud,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:https://blog.didispace.com/spring-cloud-learning/

          Spring Security

          Spring Security 主要實(shí)現(xiàn)了Authentication(認(rèn)證,解決who are you? ) 和 Access Control(訪問控制,也就是what are you allowed to do?,也稱為Authorization)。

          Spring Security在架構(gòu)上將認(rèn)證與授權(quán)分離,并提供了擴(kuò)展點(diǎn)。它是一個(gè)輕量級(jí)的安全框架,它確保基于Spring的應(yīng)用程序提供身份驗(yàn)證和授權(quán)支持。它與Spring MVC有很好地集成 ,并配備了流行的安全算法實(shí)現(xiàn)捆綁在一起。

          執(zhí)行流程

          1. 客戶端發(fā)起一個(gè)請求,進(jìn)入 Security 過濾器鏈。
          2. 當(dāng)?shù)?LogoutFilter 的時(shí)候判斷是否是登出路徑,如果是登出路徑則到 logoutHandler ,如果登出成功則到 logoutSuccessHandler 登出成功處理,如果登出失敗則由 ExceptionTranslationFilter ;如果不是登出路徑則直接進(jìn)入下一個(gè)過濾器。
          3. 當(dāng)?shù)?UsernamePasswordAuthenticationFilter 的時(shí)候判斷是否為登錄路徑,如果是,則進(jìn)入該過濾器進(jìn)行登錄操作,如果登錄失敗則到 AuthenticationFailureHandler 登錄失敗處理器處理,如果登錄成功則到 AuthenticationSuccessHandler 登錄成功處理器處理,如果不是登錄請求則不進(jìn)入該過濾器。
          4. 當(dāng)?shù)?FilterSecurityInterceptor 的時(shí)候會(huì)拿到 uri ,根據(jù) uri 去找對應(yīng)的鑒權(quán)管理器,鑒權(quán)管理器做鑒權(quán)工作,鑒權(quán)成功則到 Controller 層否則到 AccessDeniedHandler 鑒權(quán)失敗處理器處理。

          特點(diǎn)

          shiro能實(shí)現(xiàn)的,Spring Security 基本都能實(shí)現(xiàn),依賴于Spring體系,但是好處是Spring全家桶的親兒子,集成上更加契合,在使用上,比shiro略負(fù)責(zé)。

          兩者對比

          Shiro比Spring Security更容易使用,也就是實(shí)現(xiàn)上簡單一些,同時(shí)基本的授權(quán)認(rèn)證Shiro也基本夠用

          Spring Security社區(qū)支持度更高,Spring社區(qū)的親兒子,支持力度和更新維護(hù)上有優(yōu)勢,同時(shí)和Spring這一套的結(jié)合較好。

          Shiro 功能強(qiáng)大、且 簡單、靈活。是Apache 下的項(xiàng)目比較可靠,且不跟任何的框架或者容器綁定,可以獨(dú)立運(yùn)行。

          另外,如果您正在學(xué)習(xí)Spring Cloud,推薦一個(gè)連載多年還在繼續(xù)更新的免費(fèi)教程:https://blog.didispace.com/spring-cloud-learning/

          我的看法

          如果開發(fā)的項(xiàng)目是Spring這一套,用Spring Security我覺得更合適一些,他們本身就是一套東西,順暢,可能略微復(fù)雜一些,但是學(xué)會(huì)了就是自己的。如果開發(fā)項(xiàng)目比較緊張,Shiro可能更合適,容易上手,也足夠用,Spring Security中有的,Shiro也基本都有,沒有的部分網(wǎng)上也有大批的解決方案。

          如果項(xiàng)目沒有使用Spring這一套,不用考慮,直接Shiro。

          同時(shí)要考慮團(tuán)隊(duì)成員的技術(shù)棧,更加熟悉使用哪個(gè),在選型上,也要盡量避免給同行增加不必要的學(xué)習(xí)成本!


          往期推薦



          Spring Boot 2.6之后,動(dòng)態(tài)權(quán)限控制終于可以用起來了!

          Spring Boot + EasyExcel 導(dǎo)入導(dǎo)出,好用到爆,可以扔掉 POI 了!

          Spring Boot 2.6 正式發(fā)布:循環(huán)依賴默認(rèn)禁止、增加SameSite屬性...

          Spring OAuth2 授權(quán)服務(wù)器配置詳解

          使用 @Transactional 時(shí)常犯的N種錯(cuò)誤


          技術(shù)交流群

          最近有很多人問,有沒有讀者交流群,想知道怎么加入。加入方式很簡單,有興趣的同學(xué),只需要點(diǎn)擊下方卡片,回復(fù)“加群,即可免費(fèi)加入我們的高質(zhì)量技術(shù)交流群!

          點(diǎn)擊閱讀原文,送你免費(fèi)Spring Boot教程!

          瀏覽 50
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  西西人体WW大胆无码 | 亚洲第一不卡 | 一级电影毛片 | 亚洲天堂网影音先锋 | 亚洲无码免费看 |