本章講解shiro中快取和會話的管理
1.概念
在之前的例子中我們發現,我們每一次訪問需要一定許可權的url是,程式將自動的去資料庫中查詢所需要的角色許可權資訊,一旦我們的選單和按鈕上寫入的控制太多,那麼將對應查詢很多次資料庫。
上面顯示,我們每次訪問需要許可權的頁面都需要去資料庫查詢相應的角色和許可權。
為了避免上面的問題,我們可以配置shiro的快取。
2.shiro快取管理
1)引入shiro快取相關的jar包
2)配置shiro配置檔案
3)配置ehcache.xml
這裡使用hibernate中使用到的乙個就可以了。
4)測試程式
這個時候,我們發現userrealm裡的授權方法只是走了一次,成功實現快取。
那麼,有人可能會問了,我要是在後台把它的許可權更改了,你還讀快取,那不是出錯了嗎?
沒關係,shiro早就給我們準備好了重新整理快取的功能,只需要在許可權更新的時候執行一次這個方法就行了。
將該方法寫在userrealm下,如果有需要直接可以進行呼叫!!
/**
* 清理快取
*/public void clearcache()
3.shiro會話管理我們知道,shiro可以管理我們的session,諸如設定session有效時間等等。
1)配置shiro配置檔案
這就完事了。
2)驗證程式
上面我們配置了10s(10000ms)後session失效,也就是說要重新登入,我們來驗證一下:
當我們成功使用zhangsan登入之後,靜靜的等待10s沒有操作,我們會發現再次重新整理頁面又回到了登入頁:
Shiro實戰(三)Shiro授權(上)
在上篇shiro認證原理的最後,我們介紹了inirealm是如何進行認證,本篇我們將介紹shiro授權過程中的幾個概念以及shiro程式設計式的授權操作,並通過常用的使用者 角色 許可權授權模式來加深理解授權的過程。1 授權三大要素 permissions permissions是shiro安全框架...
Shiro學習筆記之Shiro加密
雜湊演算法一般用於生成資料的摘要資訊,是一種不可逆的演算法,一般適合儲存密碼之類的資料,常見的雜湊演算法如 md5 sha 等。一般進行雜湊時最好提供乙個 雜訊,這樣可以使破解密碼的難度變大。以下是md5加密演算法的乙個演示 public class tes 5 此介面提供加密密碼和驗證密碼的功能。...
Shiro學習之Shiro授權的內部處理機制(六)
1 在應用程式中呼叫授權驗證方法 subject的ispermitted 或hasrole 等 2 sbuject的例項通常是delegatingsubject類 或子類 的例項物件,在認證開始時,會委託應用程式設定的securitymanager例項呼叫相應的ispermitted 或hasrol...