Shiro學習筆記(6) shiro快取

2021-08-31 21:20:45 字數 1708 閱讀 5854

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

每一次給使用者授權時,都是通過realm從資料庫中查詢許可權,為了避免頻繁的查詢資料庫,shiro給我們提供了快取的能力

使用者認證通過後:

第一次授權:通過realm從資料庫中查詢

第二次授權:直接從快取中查詢

引入包

1. shiro-ehcache.jar

2. ehcache-core.jar

在src下建立shiro-ehcache.xml

xmlns:xsi=""

xsi:nonamespaceschemalocation="../config/ehcache.xsd">

path="f:\develop\ehcache" />

maxelementsinmemory="1000"

maxelementsondisk="10000000"

eternal="false"

overflowtodisk="false"

diskpersistent="false"

timetoidleseconds="120"

timetoliveseconds="120"

diskexpirythreadintervalseconds="120"

memorystoreevictionpolicy="lru">

defaultcache>

ehcache>

id="securitymanager"

class="org.apache.shiro.web.mgt.defaultwebsecuritymanager">

name="realm"

ref="userrealm" />

name="cachemanager"

ref="cachemanager"/>

bean>

id="cachemanager"

class="org.apache.shiro.cache.ehcache.ehcachemanager">

name="cachemanagerconfigfile"

value="classpath:shiro-ehcache.xml"/>

bean>

一般情況下,使用者正常退出和非正常退出(如關閉瀏覽器)都會自動清空快取,但是有時候我們需要手動清空快取。

例如:修改了乙個使用者的許可權,需要手動清空快取,否則這個使用者只要不退出,許可權就一直不改變。

手動情況快取需要在realm中定義乙個方法,然後在其他**中呼叫它

在reaml中定義:

//清除快取

public

void

clearcached()

在其他**中呼叫:先注入reaml,在執行clearcached方法

@autowire

private userrealm userrealm;userrealm.clearcached();

給我老師的人工智慧教程打call!

Shiro學習筆記(6) shiro快取

每一次給使用者授權時,都是通過realm從資料庫中查詢許可權,為了避免頻繁的查詢資料庫,shiro給我們提供了快取的能力 使用者認證通過後 第一次授權 通過realm從資料庫中查詢 第二次授權 直接從快取中查詢 引入包 1.shiro ehcache.jar 2.ehcache core.jar 在...

Shiro 學習筆記(6) 加密

shiro 有乙個非常強大的功能,就是對加密演算法的封裝。在我們之前的例子中,我們的密碼在 realm 裡返回認證資訊的時候,寫的都是明文。這樣的方式其實是很不安全的。一般地,密碼這樣的高度敏感的字段,我們應該是使用一種不可破解的演算法加密以後儲存到我們的資料庫中。當使用者登入的時候,在使用者輸入使...

Shiro學習筆記之Shiro加密

雜湊演算法一般用於生成資料的摘要資訊,是一種不可逆的演算法,一般適合儲存密碼之類的資料,常見的雜湊演算法如 md5 sha 等。一般進行雜湊時最好提供乙個 雜訊,這樣可以使破解密碼的難度變大。以下是md5加密演算法的乙個演示 public class tes 5 此介面提供加密密碼和驗證密碼的功能。...