使用Redis简化Shiro鉴权流程(redis集成shiro)

Shiro是一个非常实用的开源的 Java 安全框架,可被用作权限认证平台或系统的安全基础,提供了安全操作所必需的多种功能,如:身份认证、授权、会话管理等。但在实际开发中,由于权限验证操作耗时,所以出发点从技术上出发,利用缓存技术来简化这个流程,可以有效减少 Shiro 对用户和对用户访问系统时需经过的权限验证操作,以提高系统的性能和用户的访问体验。

创新互联是一家集网站建设,莲都企业网站建设,莲都品牌网站建设,网站定制,莲都网站建设报价,网络营销,网络优化,莲都网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

Redis是一款非常受欢迎的NoSQL数据库,能够快速存储和获取大量的数据,可帮我们解决传统数据库处理性能较差的问题,因此Redis成为很多技术团队后端开发的最佳选择。

将Redis与Shiro搭配使用可以比较有效的简化权限的验证操作,下面我们就一步步来实现简化Shiro鉴权流程的方案:

我们要测试验证请求和页面,验证操作一般是在请求拦截,从缓存中获取响应请求是否具有访问权限;

将拷贝一份安全数据,存储到 Redis 中,将安全数据放到 Redis 中变为对于的 key/value 形式,从而改善加载安全数据的性能;

接下来实现 Shiro 与 Redis 配合使用,如果缓存存在安全数据,那么将从缓存中获取用户角色/权限信息,以及减少查询数据库操作,以提高响应速度;

当用户信息或角色/权限发生变化时,可以从缓存中清除对应信息,实现实时同步更新。

以上就是使用Redis简化Shiro鉴权流程的基本步骤,下面我们结合示例代码来详细说明Shiro与Redis的具体实现:

// 单例

private static final CustomCachedRepermissioned _INSTANCE = newCustomCachedRepermissioned();

/**

* 使用Redis来简化Shiro的权限验证

*

* @param loginUser 登录的用户信息

* @return true表示验证通过,false表示验证失败

*/

public boolean authorizationByRedis(LoginUser loginUser) {

//Redis缓存处理

try {

//获取角色权限,从Redis获取,

String roles = _INSTANCE.getString(loginUser.getUserId());

if (StringUtils.isNotEmpty(roles)) {

List userRoleList= JSONObject.parseArray(roles, TUserRole.class);

if (!CollectionUtils.isEmpty(userRoleList)) {

//将用户角色和权限加入shiro缓存中

for (TUserRole userRole : userRoleList) {

SecurityUtils.getSubject().checkPermission(userRole.getPermissionKey());

}

return true;

}

}

}catch( Exception e){

log.error(“获取权限失败:”, e);

return false;

}

return false;

}

以上就是本文讲解的使用Redis简化Shiro鉴权流程的具体方案,希望能够给大家提供一点参考,协助大家在日常开发工作中更好地应用Shiro中的鉴权流程。

创新互联网络推广网站建设,网站设计,网站建设公司网站制作,网页设计,1500元定制网站优化全包,先排名后付费,已为上千家服务,联系电话:13518219792

文章标题:使用Redis简化Shiro鉴权流程(redis集成shiro)
链接URL:http://www.shufengxianlan.com/qtweb/news23/307173.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联