免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

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

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

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

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

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

      它的特點(diǎn)包括:

      · 易于理解的 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;

      · 不跟任何的框架或者容器捆綁,可以獨(dú)立運(yùn)行。

      Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(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能夠很好地集成,并配備了流行的安全算法實(shí)現(xiàn)捆綁在一起。Spring Security在我們進(jìn)行用戶認(rèn)證以及授予權(quán)限的時(shí)候,通過各種各樣的攔截器來控制權(quán)限的訪問,從而實(shí)現(xià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也基本夠用。

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

      而Shiro 功能強(qiáng)大、簡單、靈活。不跟任何的框架或者容器綁定,可以獨(dú)立運(yùn)行。因此對于非Spring的項(xiàng)目,Shiro兼容性更高一些。

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

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

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

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

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

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

      StpUtil.login(10001);

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

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

      StpUtil.checkLogin();

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

      @SaCheckPermission(“user:add”)

      @RequestMapping(“/user/insert”)

      public String insert(SysUser user) {

      // …

      return “用戶增加”;

      }

      看吧,是不是很簡單,相比起Shrio和Spring Security繁瑣來說,簡單是懶人的福音。事實(shí)上,對于絕大部分的權(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(); // 校驗(yàn)當(dāng)前會話是否處于二級認(rèn)證有效期內(nèi),校驗(yàn)失敗會拋出異常

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

      因此,技術(shù)發(fā)展日新月異,作為一名程序員,要緊跟時(shí)代的發(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個(gè)要點(diǎn)(短視頻策劃內(nèi)容怎么做)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        2022年11月23日

      聯(lián)系我們

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