Shiro 是一款安全框架询一,主要就是用來做驗證和授權(quán)求冷。
學(xué)習(xí)Shiro的痛苦
1.1 概念糊涂和混淆
Shiro 并不難侠草,但是這個是對已經(jīng)掌握了Shiro的同學(xué)來說的朽褪。 如果之前沒有接觸過安全框架置吓,第一次上手 Shiro的話,是非常的“打腦殼” 的鞍匾,因為它一下子引入了很多非安全框架里沒有的概念:Cryptography交洗,Authentication,Authorization橡淑,Subject构拳,Realm。不理解這些內(nèi)容梁棠,就很難理解Shiro. 而不把Shiro 應(yīng)用跑起來置森,又很難僅僅通過文字表面意思去理解這些概念。
1.2 網(wǎng)上教程難度陡峭
沒錯符糊,隨便在百度和google都可以搜索到shiro 的教程凫海,但是很多壓根兒就跑不起來。 而有的項目男娄,通過繁瑣的數(shù)據(jù)庫配置行贪,項目搭建終于跑起來了,但是它本身就已經(jīng)是一個 shiro 結(jié)合 ssm 框架的項目模闲。 如果有ssm框架基礎(chǔ)還好一點建瘫,至少可以對ssm部分能夠理解,可是它又是如何和 shiro 結(jié)合起來的尸折? 他們是如何互動以達到 驗證和授權(quán)效果的啰脚? 沒有一個循序漸進的過程,這樣的項目看得讓人一頭霧水实夹,讓人望而生畏橄浓。
2. 由淺入深的學(xué)習(xí) Shiro
本人也是經(jīng)歷過上述學(xué)習(xí)Shiro的痛苦粒梦,所以深感要牢固地掌握Shiro的內(nèi)容,需要一個由淺入深荸实,循序漸進的課程匀们。
到目前為止,個人對 Shiro 框架有了較好的理解和掌握泪勒,并且也在項目中集成和運用昼蛀。于是把自己學(xué)習(xí) Shiro的過程,按照由淺入深的方式圆存,循序漸進地展開:
1. 先來個最簡單的叼旋,兩下就跑起來的基于ini配置文件的
shiro 入門
2. 基于ini和工作環(huán)境不匹配,所以還是要搞到數(shù)據(jù)庫里
shiro jdbc方式使用數(shù)據(jù)庫
3. 搞到數(shù)據(jù)庫里沦辙,那么就存在密碼問題了
shiro 如何進行加密
4. shiro的獨立程序的做法就是上面3種夫植,而現(xiàn)在應(yīng)用都是基于web的,所以要來個基于web的做法油讯,用的是Servlet
在web中使用shiro
5. 可是現(xiàn)在開發(fā)web用的又都是ssm一套详民,所以把上面的改造成ssm的
ssm 中整合 shiro
6. 上面的做法是基于注解的,雖然能用陌兑,但是修改后要重啟才生效沈跨,不靈活。 而實際工作大都是基于url靈活配置的兔综,所以要做成基于url配置的饿凛。 可是做成url配置的前提是要用戶,角色软驰,權(quán)限涧窒,以及彼此之間的多對多關(guān)系能夠設(shè)置和管理。因為權(quán)限一套維護工作本身就相當(dāng)復(fù)雜了锭亏, 所以本知識點先不講如何url配置纠吴,而是把權(quán)限一套維護工作做了,為了下一個知識點做鋪墊慧瘤, 這樣學(xué)習(xí)起來更平滑一些戴已。
使用ssm 維護 shiro 一套權(quán)限維護
7. 接著再是基于url 配置權(quán)限的教程,基于上面一個知識點锅减,這里做起來的改動就沒有那么大了糖儡,更加容易掌握。
基于url配置權(quán)限
8. 上面3種做法都是基于ssm的上煤, 眼下springboot也很流行,本知識點就把ssm的做法改造成了springboot的做法了著淆。
springboot 整合 shiro
通過上面這樣一個漸進地劫狠,難度逐漸增加地方式拴疤,學(xué)習(xí)者可以更加容易地理解 shiro 本身的工作原理,如何整合到項目中來独泞,以及它是如何在項目在發(fā)揮作用的呐矾。
3. 對學(xué)習(xí)過程的友好支持
要想掌握一個對自己而言比較新的技術(shù),僅僅有代碼和幾個配置文件懦砂,幾乎很難成功運行出想要的結(jié)果蜒犯,所以為了幫助學(xué)習(xí)者更順暢,做了一下幾部分幫助措施:
對當(dāng)前知識提供了可以運行的程序
一個好的學(xué)習(xí)過程荞膘,最好是反過來的罚随。先知道結(jié)果,然后才去看為了達到這個結(jié)果羽资,而要采取什么步驟淘菩。這樣既有效率,也更有信心屠升。
2. 數(shù)據(jù)庫的表結(jié)構(gòu)和內(nèi)容
在支持數(shù)據(jù)庫的shiro應(yīng)用中潮改,需要用到特定的表結(jié)構(gòu),所以我也會提供
當(dāng)然了腹暖,有用于測試的表數(shù)據(jù)就更好了
3. 詳盡的學(xué)習(xí)步驟汇在,以及各個步驟的解釋
在知道了運行效果,并建立了學(xué)習(xí)信心之后脏答,再來學(xué)習(xí)到底都做了哪些工作以達到當(dāng)前的目標(biāo)糕殉,這樣帶著目標(biāo),帶著問題去學(xué)習(xí)以蕴,就能有的放矢糙麦,學(xué)習(xí)效率更高。
4.?教程地址
當(dāng)然丛肮,最好還能是免費的~
Shiro 系列教程內(nèi)容安排 | 基于實例代碼分步講解 一站式學(xué)習(xí)Java | how2j.cn
局限于個人能力和視野赡磅,教程還有諸多不足支持,請多指教宝与,謝謝