歡迎您光臨本站 註冊首頁

Spring Security 和Apache Shiro你需要具備哪些條件

←手機掃碼閱讀     limiyoyo @ 2020-07-07 , reply:0

前言

web應用達到生產需要就必須有安全控制。java web領域經常提及的兩大開源框架主要有兩種選擇
 Spring Security和Apache Shiro 。所以學習這兩種框架也是java開發者提高水平的必經之路。從今天開始連續一段時間內,研究一下Spring Security。

Spring Security 和Apache Shiro

相對於Apache Shiro,Spring Security提供了更多的諸如LDAPOAuth2.0ACLKerberosSAMLSSOOpenID等諸多的安全認證、鑑權協議,可以按需引用。對認證/鑑權更加靈活,粒度更細。可以結合你自己的業務場景進行更加合理的定製化開發。在最新的Spring Security 5.x中更是提供了響應式應用(reactive application)提供了安全控制支持。從語言上來講,支持使用kotlin、groovy進行開發。

Spring Security因為是利用了Spring IOC 和AOP的特性而無法脫離Spring獨立存在。而Apache Shiro可以獨立存在。但是Java Web領域Spring可以說是事實上的J2EE規範。使用Java技術棧很少能脫離Spring。也因為功能強大Spring Security被認為非常重,這是不對的。認真學習之後會發現其實也就是那麼回事。兩種框架都是非常優秀的安全框架,根據實際需要做技術選型。如果你要學習這兩種安全框架就必須熟悉一下一些相對專業的概念。

認證/鑑權

這兩個概念英文分別為authentication/authorization 。是不是特別容易混淆。無論你選擇Apache Shiro 或者 Spring Security 都需要熟悉這兩個概念。其實簡單來說認證(authentication)就是為了證明你是誰,比如你輸入賬號密碼證明你是用戶名為Felordcn的用戶。而授權(authorization)是通過認證後的用戶所綁定的角色等憑證來證明你可以做什麼 。打一個現實中的例子。十一長假大家遠行都要乘坐交通工具,現在坐車實名制,也就是說你坐車需要兩件東西:身份證和車票 。身份證是為了證明你確實是你,這就是 authentication;而車票是為了證明你張三確實買了票可以上車,這就是 authorization。這個例子從另一方面也證明了。如果只有認證沒有授權,認證就沒有意義。如果沒有認證,授權就無法賦予真正的可信任的用戶。兩者是同時存在的。

過濾器鏈

對於servlet web應用來說,想要通用的安全控制最好莫過於使用Servlet Filter 。 過濾器責任鏈(關於責任鏈可以通過https://www.felord.cn/chainpattern.html 來了解)來組成一系列的過濾策略,不同的條件的請求進入不同的過濾器進行各自的處理邏輯。我們可以對這些Filter 進行排列組合以滿足我們的實際業務需要。

RBAC模型

RBAC 是基於角色的訪問控制(Role-Based Access Control )的簡稱。在 RBAC 中,權限與角色相關聯,用戶通過成為適當角色的成員而得到這些角色的權限。這就極大地簡化了權限的管理。這樣管理都是層級相互依賴的,權限賦予給角色,而把角色又賦予用戶,這樣的權限設計很清楚,管理起來很方便。當你擁有某個角色以後,你自然繼承了該角色的所有功能。對你的一些操作限制不需要直接與你進行溝通,只需要操作你擁有的角色。比如你在公司既是一個java程序員又是一個前端程序員,那麼你不但要當sqlboy還要當頁面仔。如果有一天經理說了前端負責測試工作,好了你又承擔了測試任務。

其他一些概念

比如其它一些常見的安全策略、攻擊方式。比如 反向代理、網關、壁壘機這種偏運維的知識;CSRF(Cross-site request forgery)跨站請求偽造 、XSS(跨站腳本攻擊)也需要了解一些。對於一些上面提到的什麼OAuth2.0之類的協議也最好研究一下。當然這些不是必須的。

總結

本文粗略的簡述了Spring SecurityApache Shiro的一些異同。以及學習它們的一些前置條件。如果你不滿足這些條件學習起來可能比較吃力。所以本文的作用是為你學習預熱,做一些準備工作,避免新入門的同學陷入迷途。也希望大家多多支持,多多關注。


   


[limiyoyo ] Spring Security 和Apache Shiro你需要具備哪些條件已經有507次圍觀

http://coctec.com/docs/java/show-post-241600.html