Realm之IniRealm

? ? ? ? IniRealm是Shiro提供一種Realm實(shí)現(xiàn)。用戶、角色、權(quán)限等信息集中在一個(gè).ini文件那里。


文件名以.ini為后綴名表示采用的是IniRealm

? ? ? ? users開始的標(biāo)簽說明開始定義用戶認(rèn)證信息。這里有兩個(gè)用戶,他們的用戶名分別是tom、jer,密碼都是123.tom的角色有admin、user,而jer只有user角色。roles開始的標(biāo)簽開始定義角色擁有的權(quán)限標(biāo)識(shí),admin角色有user:delete權(quán)限,user角色有user.update權(quán)限標(biāo)識(shí)。

? ? ? ? 在編寫完成這個(gè)Ini文件之后,下面開始測(cè)試。

需要Shiro-core、Junit、Slf4j三個(gè)jar包

? ? ? ? 這次使用的是IniRealm實(shí)現(xiàn)類。在構(gòu)建IniRealm時(shí)需要傳入resourcePath來表示ini文件的路徑。這個(gè)路徑和你放置的Ini文件路徑相關(guān)。我使用的是Idea開發(fā)工具,src包為source root,user.ini放置在src/test下,所以是classpath:test/user.ini。

? ? ? ? 同樣的,我們顯示的實(shí)例一個(gè)Token,在27行。然后在28行檢查是否可以認(rèn)證、在29行檢查是否具有user角色,在30行檢查是否具有權(quán)限。

? ? ? ? 在28行檢查過程中,如果拋出org.apache.shiro.authc.UnknownAccountException。這表示不存在名為jer的賬號(hào)。

? ? ? ? 在28行檢查過程中,如果拋出org.apache.shiro.authc.IncorrectCredentialsException。這表示密碼有誤,Credentials意味資格證書。

? ? ? ? 在29行和30檢查過程中,如果不具有相應(yīng)的角色或權(quán)限,他們都拋出同樣的異常org.apache.shiro.authz.UnauthorizedException。緊隨異常類其后的異常信息會(huì)給出是不具有相應(yīng)的權(quán)限還是角色。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 上一章主要對(duì)Shiro功能,運(yùn)行原理,架構(gòu)設(shè)計(jì)進(jìn)行了介紹,這一章我們主要學(xué)習(xí)Shiro的身份驗(yàn)證。本章的代碼...
    卑微幻想家閱讀 2,138評(píng)論 0 12
  • 構(gòu)建第一個(gè)Apache Shiro應(yīng)用 如果您是Apache Shiro的新手,這個(gè)簡(jiǎn)短的教程將向您展示如何設(shè)置基...
    塵_竹閱讀 1,797評(píng)論 0 3
  • 本篇文章主要是對(duì)權(quán)限框架shiro的一個(gè)小總結(jié)。寫的不對(duì)的地方或者哪里需要修改的歡迎大家給出意見。 shiro是什...
    胡GaQue閱讀 1,928評(píng)論 0 7
  • Shiro內(nèi)置Realm IniRealm JdbcRealmhappy IniRealm 主要是將數(shù)據(jù)存放到相應(yīng)...
    jarWorker閱讀 956評(píng)論 0 1
  • 去他娘的‘婆娘’男人!真令人作嘔而不堪入目。扭捏作態(tài)像女人的心眼跟針鼻一樣小。我和老公入住他家二樓民房,那天...
    fpch閱讀 129評(píng)論 0 0

友情鏈接更多精彩內(nèi)容