日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Redis簡化Shiro鑒權(quán)流程(redis集成shiro)

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

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蓮都企業(yè)網(wǎng)站建設(shè),蓮都品牌網(wǎng)站建設(shè),網(wǎng)站定制,蓮都網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,蓮都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

Redis是一款非常受歡迎的NoSQL數(shù)據(jù)庫,能夠快速存儲和獲取大量的數(shù)據(jù),可幫我們解決傳統(tǒng)數(shù)據(jù)庫處理性能較差的問題,因此Redis成為很多技術(shù)團(tuán)隊(duì)后端開發(fā)的最佳選擇。

將Redis與Shiro搭配使用可以比較有效的簡化權(quán)限的驗(yàn)證操作,下面我們就一步步來實(shí)現(xiàn)簡化Shiro鑒權(quán)流程的方案:

我們要測試驗(yàn)證請求和頁面,驗(yàn)證操作一般是在請求攔截,從緩存中獲取響應(yīng)請求是否具有訪問權(quán)限;

將拷貝一份安全數(shù)據(jù),存儲到 Redis 中,將安全數(shù)據(jù)放到 Redis 中變?yōu)閷τ诘?key/value 形式,從而改善加載安全數(shù)據(jù)的性能;

接下來實(shí)現(xiàn) Shiro 與 Redis 配合使用,如果緩存存在安全數(shù)據(jù),那么將從緩存中獲取用戶角色/權(quán)限信息,以及減少查詢數(shù)據(jù)庫操作,以提高響應(yīng)速度;

當(dāng)用戶信息或角色/權(quán)限發(fā)生變化時(shí),可以從緩存中清除對應(yīng)信息,實(shí)現(xiàn)實(shí)時(shí)同步更新。

以上就是使用Redis簡化Shiro鑒權(quán)流程的基本步驟,下面我們結(jié)合示例代碼來詳細(xì)說明Shiro與Redis的具體實(shí)現(xiàn):

// 單例

private static final CustomCachedRepermissioned _INSTANCE = newCustomCachedRepermissioned();

/**

* 使用Redis來簡化Shiro的權(quán)限驗(yàn)證

*

* @param loginUser 登錄的用戶信息

* @return true表示驗(yàn)證通過,false表示驗(yàn)證失敗

*/

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)流程的具體方案,希望能夠給大家提供一點(diǎn)參考,協(xié)助大家在日常開發(fā)工作中更好地應(yīng)用Shiro中的鑒權(quán)流程。

創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792


文章名稱:使用Redis簡化Shiro鑒權(quán)流程(redis集成shiro)
標(biāo)題路徑:http://www.dlmjj.cn/article/cooegoo.html