在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    安全管理框架,用Shiro還是用Spring Security?

    安全管理框架,用Shiro還是用Spring Security?

    開發(fā)Java應用項目的時候,安全管理通常來講是必不可少的功能。常用的安全管理框架有Apache Shiro和Spring Security,那么作為一名開發(fā)人員的話,該如何選擇自己的權限管理框架呢?

    首先我們來看一看兩者的區(qū)別。

    Apache Shiro是一個強大且易用的Java安全框架,能夠非常清晰的處理認證、授權、管理會話以及密碼加密等功能。他的API也非常易于理解的API,因此,對于初學者來說,非常容易上手。

    它的特點包括:

    · 易于理解的 Java Security API;

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

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

    · 支持一級緩存,以提升應用程序的性能;

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

    · 異構客戶端會話訪問;

    · 非常簡單地加密 API;

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

    Spring Security是一個能夠為基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC(控制反轉),DI( 依賴注入)和AOP(面向切面編程)功能,為應用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復代碼的工作。它與Spring MVC能夠很好地集成,并配備了流行的安全算法實現(xiàn)捆綁在一起。Spring Security在我們進行用戶認證以及授予權限的時候,通過各種各樣的攔截器來控制權限的訪問,從而實現(xiàn)安全。

    從功能上來講,shiro能實現(xiàn)的,Spring Security 基本都能實現(xiàn),依賴于Spring體系,但是好處是Spring全家桶的親兒子,集成上更加契合,在使用上,比shiro略負責。但是Shiro比Spring Security更容易使用,也就是實現(xiàn)上簡單一些,同時基本的授權認證Shiro也基本夠用。

    從社區(qū)活躍度來說,Spring Security社區(qū)支持度更高,Spring社區(qū)的親兒子,支持力度和更新維護上有優(yōu)勢。相比之下Shiro的支持度就差了一點,但是依然還是有很多開發(fā)者在為Shiro做出貢獻。

    而Shiro 功能強大、簡單、靈活。不跟任何的框架或者容器綁定,可以獨立運行。因此對于非Spring的項目,Shiro兼容性更高一些。

    因此,從比較上來講,兩者的區(qū)別不是很大。使用的時候,如果開發(fā)框架全部采用Spring全家桶的話,那么用Spring Security會比較合適一些。而對于剛開始接觸安全管理框架或者是不用Spring全家桶的話,用Shiro比較好一些。

    但是,同時我們也應該注意到,Shiro和Spring Security都已經誕生了十幾年了,隨著技術的演進發(fā)展,其基本框架也產生了一定局限性,尤其是對于前后端分離的框架來說,需要多做很多兼容性的工作。

    在這種情況下,新的Java權限管理框架Sa-Token就應運而生了。

    Sa-Token 是一個輕量級 Java 權限認證框架,主要解決:登錄認證、權限認證、Session會話、單點登錄、OAuth2.0、微服務網關鑒權 等一系列權限相關問題。

    Sa-Token 的 API 設計非常簡單,以登錄認證為例,只需要兩行代碼就可以完成了:

    // 在登錄時寫入當前會話的賬號id

    StpUtil.login(10001);

    // 然后在需要校驗登錄處調用以下方法:

    // 如果當前會話未登錄,這句代碼會拋出 `NotLoginException` 異常

    StpUtil.checkLogin();

    再比如權限認證,如下代碼即可完成(只有具備 user:add 權限的會話才可以進入請求):

    @SaCheckPermission(“user:add”)

    @RequestMapping(“/user/insert”)

    public String insert(SysUser user) {

    // …

    return “用戶增加”;

    }

    看吧,是不是很簡單,相比起Shrio和Spring Security繁瑣來說,簡單是懶人的福音。事實上,對于絕大部分的權限控制功能Sa-Token都能夠用一句話來完成。就像下面一樣。

    StpUtil.login(10001); // 標記當前會話登錄的賬號id

    StpUtil.getLoginId(); // 獲取當前會話登錄的賬號id

    StpUtil.isLogin(); // 獲取當前會話是否已經登錄, 返回true或false

    StpUtil.logout(); // 當前會話注銷登錄

    StpUtil.kickout(10001); // 將賬號為10001的會話踢下線

    StpUtil.hasRole(“super-admin”); // 查詢當前賬號是否含有指定角色標識, 返回true或false

    StpUtil.hasPermission(“user:add”); // 查詢當前賬號是否含有指定權限, 返回true或false

    StpUtil.getSession(); // 獲取當前賬號id的Session

    StpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的Session

    StpUtil.getTokenValueByLoginId(10001); // 獲取賬號id為10001的token令牌值

    StpUtil.login(10001, “PC”); // 指定設備標識登錄,常用于“同端互斥登錄”

    StpUtil.kickout(10001, “PC”); // 指定賬號指定設備標識踢下線 (不同端不受影響)

    StpUtil.openSafe(120); // 在當前會話開啟二級認證,有效期為120秒

    StpUtil.checkSafe(); // 校驗當前會話是否處于二級認證有效期內,校驗失敗會拋出異常

    StpUtil.switchTo(10044); // 將當前會話身份臨時切換為其它賬號

    因此,技術發(fā)展日新月異,作為一名程序員,要緊跟時代的發(fā)展,才能使自己不至于落后。

    鄭重聲明:本文內容及圖片均整理自互聯(lián)網,不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年6月16日 18:00
    下一篇 2022年6月16日 18:01

    相關推薦

    • 短視頻策劃內容的3個要點(短視頻策劃內容怎么做)

      短視頻在制作時,內容框架非常重要。如果直奔主題,然后結束,聚卓告訴你,這樣的短視頻已經過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

      2022年11月27日
    • 全民K歌升級新版本7.0之后,有哪些隱藏功能?

      作者:高百烈來源:知乎 這個功能,舊版并沒有,要升級到全新的全民K歌7.0版本才能發(fā)現(xiàn)。 作為朋友圈當代K歌之王,我費了不少功夫才搶到內測版本。有一說一,全民K歌的路子真的很野,新…

      2022年11月25日
    • 上手Reno8 Pro體驗跨屏互聯(lián) 實在太方便!

      11月已經來到了月底,在手機品牌又要推出新一年度的新品手機之前,我們來點評一下今年令人驚喜的產品。如OPPO的Reno8 Pro系列,該系列搭載雙芯影像配置獲得了很多消費者的認可?!?/p>

      2022年11月25日
    • 博客營銷的3大優(yōu)勢解析(博客營銷怎么做)

      不知不覺已經寫了24篇文章,加上這篇是第25篇了,都是自己這幾年來用過的營銷方法,如果遇到有些不懂的,我會咨詢我的朋友和同事幫忙,盡量讓每一篇有價值,哪怕是對大家有一點點幫助也行,…

      2022年11月25日
    • 華為手機怎么掃一掃連接wifi(手機掃一掃在哪里)

      手機瀏覽器可以用來瀏覽網頁、看新聞、看視頻,還能搜索問題,在我們的工作生活中瀏覽器占據著非常重要的位置。手機瀏覽器除了這些作用,其實它隱藏著其他功能,比如:掃一掃。掃一掃可不只是用…

      2022年11月24日
    • 三星手機截屏(三星手機截屏圖片在哪個文件夾)

      本文主要講的是三星手機截屏,以及和三星手機截屏圖片在哪個文件夾相關的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 三星手機截屏怎么截 三星手機四種截屏方法 1、普通截…

      2022年11月24日
    • 微信微店怎么開

      微信開店的方式有以下兩種1基于微信公眾號搭建一個“微商城”2基于微信小程序,搭建一個商城型小程序下面給你介紹一下具體的流程 1登錄微信公眾平臺,申請注冊一個微信公眾號,或者直接注冊…

      2022年11月24日
    • 英特爾推出按需付費芯片授權服務 針對新至強處理器

      此前有消息傳出,英特爾將針對服務器芯片推出全新的付費解鎖功能服務?,F(xiàn)在,英特爾已經正式公布了這一服務,名為“Intel On Demand”,旨在為客戶“提供靈活的消費功能以及根據…

      2022年11月23日
    • magicos7.0升級名單 magicos7.0支持機型名單一覽

      Magicos7.0系統(tǒng)升級名單有哪些?昨天榮耀官方正式發(fā)布了Magicos7.0系統(tǒng),并且給出了不同機型的系統(tǒng)升級推送時間。大家可以在本文中查看自己的機型是否支持升級,以及具體的…

      2022年11月23日
    • 快手限流多久能解除(快手限流什么意思)

      我相信很多人都看中了快手平臺的商機,都爭先恐后地想要搶占機會,可一些人剛剛作出一點成績,就被降權了,自己也不知道什么原因。所以今天就來聊聊快手賬號降權操作分享,趕快來看看避免違規(guī)!…

      2022年11月23日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息