亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

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

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

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

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

                它的特點包括:

                · 易于理解的 Java Security API;

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

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

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

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

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

                · 非常簡單地加密 API;

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

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

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

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

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

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

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

                在這種情況下,新的Java權(quán)限管理框架Sa-Token就應(yīng)運而生了。

                Sa-Token 是一個輕量級 Java 權(quán)限認(rèn)證框架,主要解決:登錄認(rèn)證、權(quán)限認(rèn)證、Session會話、單點登錄、OAuth2.0、微服務(wù)網(wǎng)關(guān)鑒權(quán) 等一系列權(quán)限相關(guān)問題。

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

                // 在登錄時寫入當(dāng)前會話的賬號id

                StpUtil.login(10001);

                // 然后在需要校驗登錄處調(diào)用以下方法:

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

                StpUtil.checkLogin();

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

                @SaCheckPermission(“user:add”)

                @RequestMapping(“/user/insert”)

                public String insert(SysUser user) {

                // …

                return “用戶增加”;

                }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                相關(guān)推薦

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

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

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

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

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

                  11月已經(jīng)來到了月底,在手機品牌又要推出新一年度的新品手機之前,我們來點評一下今年令人驚喜的產(chǎn)品。如OPPO的Reno8 Pro系列,該系列搭載雙芯影像配置獲得了很多消費者的認(rèn)可。…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  2022年11月23日

                聯(lián)系我們

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