日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在 SpringBoot 项目中,Spring Security 和 Shiro 该如何选择?

發(fā)布時間:2025/3/20 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 SpringBoot 项目中,Spring Security 和 Shiro 该如何选择? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點擊上方?好好學java?,選擇?星標?公眾號重磅資訊,干貨,第一時間送達 今日推薦:推薦19個github超牛逼項目!個人原創(chuàng)100W +訪問量博客:點擊前往,查看更多

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

Shiro

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

執(zhí)行流程

圖片

特點

  • 易于理解的 Java Security API;

  • 簡單的身份認證(登錄),支持多種數(shù)據(jù)源(LDAP,JDBC,Kerberos,ActiveDirectory 等);

  • 對角色的簡單的簽權(quán)(訪問控制),支持細粒度的簽權(quán);

  • 支持一級緩存,以提升應(yīng)用程序的性能;

  • 內(nèi)置的基于 POJO 企業(yè)會話管理,適用于 Web 以及非 Web 的環(huán)境;

  • 異構(gòu)客戶端會話訪問;

  • 非常簡單的加密 API;

  • 不跟任何的框架或者容器捆綁,可以獨立運行。

  • Spring Security

    Spring Security 主要實現(xiàn)了Authentication(認證,解決who are you? ) 和 Access Control(訪問控制,也就是what are you allowed to do?,也稱為Authorization)。Spring Security在架構(gòu)上將認證與授權(quán)分離,并提供了擴展點。它是一個輕量級的安全框架,它確保基于Spring的應(yīng)用程序提供身份驗證和授權(quán)支持。它與Spring MVC有很好地集成 ,并配備了流行的安全算法實現(xiàn)捆綁在一起。

    執(zhí)行流程

    圖片

  • 客戶端發(fā)起一個請求,進入 Security 過濾器鏈。

  • 當?shù)?LogoutFilter 的時候判斷是否是登出路徑,如果是登出路徑則到 logoutHandler ,如果登出成功則到 logoutSuccessHandler 登出成功處理,如果登出失敗則由 ExceptionTranslationFilter ;如果不是登出路徑則直接進入下一個過濾器。

  • 當?shù)?UsernamePasswordAuthenticationFilter 的時候判斷是否為登錄路徑,如果是,則進入該過濾器進行登錄操作,如果登錄失敗則到 AuthenticationFailureHandler 登錄失敗處理器處理,如果登錄成功則到 AuthenticationSuccessHandler 登錄成功處理器處理,如果不是登錄請求則不進入該過濾器。

  • 當?shù)?FilterSecurityInterceptor 的時候會拿到 uri ,根據(jù) uri 去找對應(yīng)的鑒權(quán)管理器,鑒權(quán)管理器做鑒權(quán)工作,鑒權(quán)成功則到 Controller 層否則到 AccessDeniedHandler 鑒權(quán)失敗處理器處理。

  • 特點

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

    兩者對比

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

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

    Shiro 功能強大、且 簡單、靈活。是Apache 下的項目比較可靠,且不跟任何的框架或者容器綁定,可以獨立運行。

    我的看法

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

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

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

    推薦文章
    • 面試官問:前后端分離項目,有什么優(yōu)缺點?我說:沒

    • 2020 年騰訊新增 20 億行代碼,鵝廠第一編程語言還是它

    • 通俗講解分布式鎖,看完不懂算我輸

    • 寫博客能月入10K?

    • 一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客)

    更多項目源碼
    • 這或許是最美的Vue+Element開源后臺管理UI

    • 推薦一款高顏值的 Spring Boot 快速開發(fā)框架

    • 一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客)

    • 13K點贊都基于 Vue+Spring 前后端分離管理系統(tǒng)ELAdmin,大愛

    • 想接私活時薪再翻一倍,建議根據(jù)這幾個開源的SpringBoot項目

    總結(jié)

    以上是生活随笔為你收集整理的在 SpringBoot 项目中,Spring Security 和 Shiro 该如何选择?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。