新聞中心
Shiro是一個非常實用的開源的 Java 安全框架,可被用作權(quán)限認(rèn)證平臺或系統(tǒng)的安全基礎(chǔ),提供了安全操作所必需的多種功能,如:身份認(rèn)證、授權(quán)、會話管理等。但在實際開發(fā)中,由于權(quán)限驗證操作耗時,所以出發(fā)點從技術(shù)上出發(fā),利用緩存技術(shù)來簡化這個流程,可以有效減少 Shiro 對用戶和對用戶訪問系統(tǒng)時需經(jīng)過的權(quán)限驗證操作,以提高系統(tǒng)的性能和用戶的訪問體驗。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蓮都企業(yè)網(wǎng)站建設(shè),蓮都品牌網(wǎng)站建設(shè),網(wǎng)站定制,蓮都網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,蓮都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
Redis是一款非常受歡迎的NoSQL數(shù)據(jù)庫,能夠快速存儲和獲取大量的數(shù)據(jù),可幫我們解決傳統(tǒng)數(shù)據(jù)庫處理性能較差的問題,因此Redis成為很多技術(shù)團隊后端開發(fā)的最佳選擇。
將Redis與Shiro搭配使用可以比較有效的簡化權(quán)限的驗證操作,下面我們就一步步來實現(xiàn)簡化Shiro鑒權(quán)流程的方案:
我們要測試驗證請求和頁面,驗證操作一般是在請求攔截,從緩存中獲取響應(yīng)請求是否具有訪問權(quán)限;
將拷貝一份安全數(shù)據(jù),存儲到 Redis 中,將安全數(shù)據(jù)放到 Redis 中變?yōu)閷τ诘?key/value 形式,從而改善加載安全數(shù)據(jù)的性能;
接下來實現(xiàn) Shiro 與 Redis 配合使用,如果緩存存在安全數(shù)據(jù),那么將從緩存中獲取用戶角色/權(quán)限信息,以及減少查詢數(shù)據(jù)庫操作,以提高響應(yīng)速度;
當(dāng)用戶信息或角色/權(quán)限發(fā)生變化時,可以從緩存中清除對應(yīng)信息,實現(xiàn)實時同步更新。
以上就是使用Redis簡化Shiro鑒權(quán)流程的基本步驟,下面我們結(jié)合示例代碼來詳細(xì)說明Shiro與Redis的具體實現(xiàn):
// 單例
private static final CustomCachedRepermissioned _INSTANCE = newCustomCachedRepermissioned();
/**
* 使用Redis來簡化Shiro的權(quán)限驗證
*
* @param loginUser 登錄的用戶信息
* @return true表示驗證通過,false表示驗證失敗
*/
public boolean authorizationByRedis(LoginUser loginUser) {
//Redis緩存處理
try {
//獲取角色權(quán)限,從Redis獲取,
String roles = _INSTANCE.getString(loginUser.getUserId());
if (StringUtils.isNotEmpty(roles)) {
List userRoleList= JSONObject.parseArray(roles, TUserRole.class);
if (!CollectionUtils.isEmpty(userRoleList)) {
//將用戶角色和權(quán)限加入shiro緩存中
for (TUserRole userRole : userRoleList) {
SecurityUtils.getSubject().checkPermission(userRole.getPermissionKey());
}
return true;
}
}
}catch( Exception e){
log.error(“獲取權(quán)限失?。骸? e);
return false;
}
return false;
}
以上就是本文講解的使用Redis簡化Shiro鑒權(quán)流程的具體方案,希望能夠給大家提供一點參考,協(xié)助大家在日常開發(fā)工作中更好地應(yīng)用Shiro中的鑒權(quán)流程。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務(wù),聯(lián)系電話:13518219792
新聞標(biāo)題:使用Redis簡化Shiro鑒權(quán)流程(redis集成shiro)
新聞來源:http://fisionsoft.com.cn/article/cooegoo.html


咨詢
建站咨詢
