-
shiro認(rèn)證
查看全部 -
Shiro的IniRealm 形式:此形式主要是將數(shù)據(jù)存放到相應(yīng)的user.ini即文件系統(tǒng)中,通過給定的格式,從文件中查找相應(yīng)的數(shù)據(jù)是否存在。
步驟:
1.刪除之前SimpleAccountRealm,在實(shí)體中創(chuàng)建IniRealm并實(shí)例化。在構(gòu)造方法中傳入相應(yīng)的user.ini地址。此文件地址一般寫為:classpath:user.ini的形式。
? 需要在相應(yīng)的包中建立resource文件夾,并且放入user.ini文件。
2.user.ini文件的定義格式為:[users] 用戶名=密碼,角色 [roles] 角色=權(quán)限名(例子:amdin=user:delete,user:update)
3.與之前認(rèn)證與授權(quán)步驟一樣,直接將IniRealm放入到SecurityManager中,進(jìn)行登錄認(rèn)證,之后進(jìn)行checkRoles驗(yàn)證與checkPersimmon驗(yàn)證權(quán)限等操作即可。
查看全部 -
Shiro授權(quán)
與之前Shiro認(rèn)證的步驟一樣。
只不過在Realm 的SimpleAccountRealm中可以添加addUser的時候,可以添加入多個角色(即可變數(shù)組的形式)
同樣進(jìn)行授權(quán)驗(yàn)證即檢驗(yàn)該登錄用戶是否具備該角色的時候,使用:
subject.checkRoles(可變參數(shù))的形式檢驗(yàn)。
必須在登錄的情況下,其他步驟與認(rèn)證相同。
查看全部 -
Shiro認(rèn)證
流程:創(chuàng)建Security Manager 管理,然后主體進(jìn)行數(shù)據(jù)提交認(rèn)證,轉(zhuǎn)移到相應(yīng)的Security Manager中,然后權(quán)限管理調(diào)用相應(yīng)的Authenticator認(rèn)證,認(rèn)證部分調(diào)用相應(yīng)的Realm去連接數(shù)據(jù)源進(jìn)行數(shù)據(jù)驗(yàn)證。
ps:Realm是在Security Manager中,所以需要設(shè)置Realm到Security Manager中,才能調(diào)用。
代碼實(shí)現(xiàn):
利用Maven管理的方式,首先注入shiro-core的核心包,具體坐標(biāo)如下:
<groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.1</version>
2. 首先建立Security Manager 對象,然后將此對象加入到SecurityUtils的整體環(huán)境中。
3.通過SecurityUtils獲取相應(yīng)的主體,主體調(diào)用login方法進(jìn)行登錄,需要輸入用戶名和密碼,即主體傳來的用戶名和密碼。
4.驗(yàn)證是否登錄通過,則調(diào)用subject主體.isAut的方法看是否驗(yàn)證通過。
如果驗(yàn)證失敗,密碼或者賬戶錯誤,則會拋異常。
5.在此之前需要先設(shè)置相應(yīng)的Realm,以找到相應(yīng)數(shù)據(jù)庫,并且進(jìn)行驗(yàn)證數(shù)據(jù)是否對應(yīng)。設(shè)置簡單的SimpleAccountRealm,進(jìn)行實(shí)例化。在單元測試之前加入用戶數(shù)據(jù)。在將此Realm加入到權(quán)限管理中。即可。
查看全部 -
Shiro整體架構(gòu)
主體訪問Shiro的核心部分,即Security Manager 權(quán)限管理。
其中存在認(rèn)證管理、授權(quán)管理、Session管理、緩存管理、SessionDao數(shù)據(jù)庫連接、Realms負(fù)責(zé)與數(shù)據(jù)源相連,獲取并且返回數(shù)據(jù),還有Crp用作對數(shù)據(jù)進(jìn)行加密操作等。
流程:當(dāng)主體訪問權(quán)限管理器,如果做認(rèn)證操作,則將數(shù)據(jù)傳入到相應(yīng)的認(rèn)證管理器,認(rèn)證管理器通過Realms訪問數(shù)據(jù)源,返回數(shù)據(jù)信息進(jìn)行比對,將結(jié)果返回,同理其他的模塊也是一樣。
查看全部 -
Shiro安全框架:簡單靈活、可脫離Spring 獨(dú)立存在、粒度較粗
Spring Security :復(fù)雜笨重、必須依托與Spring、粒度較細(xì)
由于權(quán)限管理模塊一般都是在資源一層,如果更深一層的話,則可能會與業(yè)務(wù)代碼進(jìn)行耦合,故提倡Shiro做權(quán)限管理,Spring官網(wǎng)也是用Shiro進(jìn)行的權(quán)限管理。
查看全部 -
Shiro 是 Apache的開源的安全框架,
主要應(yīng)用在認(rèn)證、授權(quán),會話管理、安全加密、緩存管理。
主要應(yīng)用在權(quán)限管理模塊的開發(fā)。
查看全部 -
Shiro授權(quán)過程
查看全部 -
Shiro認(rèn)證過程
查看全部 -
shiro 可以脫離spring
查看全部 -
shiro架構(gòu)圖
查看全部 -
subject.checkRole()檢查用戶是否具備角色
subject.login()傳入token? 登陸認(rèn)證
simpleAccountRelm.addAccount() 授權(quán)器? 授權(quán)
sa 通過 Realm獲取角色數(shù)據(jù)和權(quán)限數(shù)據(jù)
查看全部 -
shiro與spring security比較
查看全部 -
在web.xml中配置shiro的過濾器
查看全部 -
shiro和spring集成所需的jar包
查看全部
舉報