当前位置:首页 » 文件管理 » shiro缓存更新

shiro缓存更新

发布时间: 2022-12-29 22:42:34

Ⅰ SpringBoot + Shiro (四)缓存&记住密码

最终demo

到这节为止,我们已经实现了身份验证和权限验证。但是,如果我们登录之后多次访问 http://localhost:8080/userInfo/userDel 的话,会发现权限验证会每次都执行一次。这是有问题的,因为像用户的权限这些我们提供给shiro一次就够了。

下面,我们开始给shiro添加缓存支持:

在 com.example.demo.config.Shiro.ShiroConfiguration 中添加以下方法。

将缓存对象注入到 SecurityManager 中:

在src/main/resouces/config中添加ehcache-shiro.xml配置文件:

启动项目,再多次访问 http://localhost:8080/userInfo/userDel ,这时候只会在后台打印一次配置权限的信息了,说明shiro缓存起了作用。

---------------------下面我们开始配置记住密码-----------

将rememberMeManager注入到SecurityManager中

在 ShiroFilterFactoryBean 中添加记住我过滤器 user ,添加 user 过滤器的资源在记住我或认证之后就可以直接访问了。

最后,在login.html页面添加记住我单选框

启动项目,正常登录后关闭浏览器,再打开浏览器输入 http://localhost:8080/index ,这时候就可以直接访问index页面,不需要再登录了。

SpringBoot + Shiro (一)基础工程搭建
SpringBoot + Shiro (二)身份校验和角色设置
SpringBoot + Shiro (三)权限
SpringBoot + Shiro (四)缓存&记住密码
SpringBoot + Shiro (五)验证码

最后,感谢几位作者的文章解惑:
springboot整合shiro-登录认证和权限管理
Spring Boot Shiro权限管理【从零开始学Spring Boot】
Spring boot 中使用Shiro

最后帮朋友打个小广告

一个有趣的迷你小程序

Ⅱ Springboot集成shiro,开启shiro缓存,@Lazy注解贴在自定义realm中缓存会生效吗

1.注解只是代码的简略写法,所以生效不生效要看代码有没有被执行。
2.有没有被执行看的是配置,扫描范围内的注解就会被执行,跟你写在哪儿没有关系。

Ⅲ spring mvc 中shiro 怎么和缓存联合使用

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置,只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣, /css/** = anon 配置...

Ⅳ shiro登录时ehcache缓存报错

推荐一套完整的Shiro Demo,免费的。
Shiro介绍文档:http://www.sojson.com/shiro
Demo已经部署到线上,地址是http://shiro.itboy.net,
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。
PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。

Ⅳ shiro更新session次数很多怎么解决

用shiro时发现session.update等方法调用频繁.
原因:session update大多是在更新最后访问时间.每一次请求都会更新最后访问时间.
当一个页面包含多个资源的时候就会发生多次update session.

解决方案1:
重写session的update方法,当发现是静态资源时,放弃update

方案2:
将SpringMVC和Shiro的url-pattern由"/"修改为"*.do",在容器层过滤掉静态请求.

Ⅵ shiro自定的本机内存实现的cachemanager类有什么用

在Shiro中为会话启用Ehcache是非常容易的。首先,确保在你的classpath 中有shiro-ehcache-<version>.jar 文件。
然后,在shiro.ini中配置EHCache为所有Shiro 的缓存提供使用:

[main]
sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
securityManager.sessionManager.sessionDAO = $sessionDAO
cacheManager = org.apache.shiro.cache.ehcache.EhcacheManager
securityManager.cacheManager = $cacheManager

最后一行,securityManager.cacheManager = $cacheManager,为所有Shiro 的组件配置了一个CacheManager。该CacheManager 实例会自动地直接传送到SessionDAO(通过EnterpriseCacheSessionDAO 实现CacheManagerAware 接口的性质)。
然后,当SessionManager 要求EnterpriseCacheSessionDAO 去持久化一个Session 时,它使用一个EHCache 支持的Cache实现去存储Session 数据。
EHCache Session Cache Configuration
默认地,EhCacheManager 使用一个Shiro 特定的ehcache.xml 文件来建立Session 缓存区以及确保Sessions 正常存取的必要设置。
然而,如果你想改变缓存设置,或想配置你自己的ehcache.xml 或EHCache net.sf.ehcache.CacheManager 实例,你需要配置缓存区来确保Sessions 被正确地处理。
如果你查看默认的ehcache.xml 文件,你会看到接下来的shiro-activeSessionCache 缓存配置:

Ⅶ shiro为什么调用realm的清空缓存方法

我是在帐号验证成功后在doGetAuthenticationInfo里面显式调用doGetAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());即可获取当前所有的权限能达到和你一样的目的,但是不晓得是不是符合规范。因为我直接使用注解

Ⅷ SpringBoot进阶之整合Shiro实现缓存和会话管理

大家好,一直以来我都本着用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 “基础知识” 的铺垫。目前正在出一个 SpringBoot 长期系列教程,从入门到进阶, 篇幅会较多~

“大佬可以绕过 ~”

如果你是一路看过来的,很高兴你能够耐心看完。之前带大家学了 Springboot 基础部分,对基本的使用有了初步的认识, 接下来的几期内容将会带大家进阶使用,会先讲解基础 中间件 的使用和一些场景的应用,或许这些技术你听说过,没看过也没关系,我会带大家一步一步的入门,耐心看完你一定会有 收获 ~

上期带大家学习了 Shiro 中如何进行权限认证,本期将带大家学习 Shiro 中如何进行 缓存和会话管理 ,最后我们将做一个在线用户管理以及强制下线用户的功能,同样的,我们集成到 Springboot 中。

首先我们要明白使用缓存的原因,为啥要用它 还记得之前带大家实现的 用户认证 权限认证 吗,那里我使用了 MockUser ,真实场景中是要去数据查询的,这样一来就会产生耗时,请求多的时候数据库肯定忙不过来了,所以我们需要使用缓存来提高程序响应速度

缓存使用 Redis ,下面就带大家整一下:

修改 ShiroConfig ,添加方法

这样就可以了,大家可以把测试获取用户的地方改成数据库获取,看下 控制台 sql日志会明显减少,因为有一部分是从缓存拿的

这部分功能还是比较好玩的,学完可以自由发挥做一个房间功能,可以加入可以踢人,下面我们就开整

修改 ShiroConfig ,添加方法,因为我们使用的是 Redis 缓存

实现 SessionListener

最后同样的,想要开启需要我们注入到 Manager 中:

我们先定义一个类,用来记录在线用户:

那么怎么获取呢?我们定义一个方法,大家实践中可以抽到 Service 层,这里方便演示,我直接写到控制器里

如果你看谁不爽,可以直接让他下线,hhh~

是不是很简单,这里就不演示了,大家自行试试

本期内容就到这里结束了,总结一下,本节主要讲了 Shiro 如何进行缓存以及如何进行用户会话管理,大家可以举一反三,做一些小功能尝试尝试

下期给大家讲讲 Shiro 中如何整合 JWT ,这个大家应该不陌生,如果不知道啥是 JWT 也没关系,我会带大家一步一步入门,下期也是 Shiro 系列的终极篇,内容可能有点多,耐心看完哦。欢迎加群一起学习交流 ~

热点内容
加密javascript 发布:2025-08-24 07:30:26 浏览:889
分类变量源码 发布:2025-08-24 07:03:24 浏览:777
甲骨文数据库培训 发布:2025-08-24 07:01:59 浏览:144
我的世界国健服务器 发布:2025-08-24 06:17:40 浏览:530
sql2008编程 发布:2025-08-24 06:14:39 浏览:824
数据库1范式 发布:2025-08-24 06:11:01 浏览:550
asp连接数据库的代码 发布:2025-08-24 06:03:03 浏览:43
java自动生成代码 发布:2025-08-24 05:56:18 浏览:613
甜糖存储位置 发布:2025-08-24 05:56:17 浏览:726
我的世界网易版ice服务器如何卡方块 发布:2025-08-24 05:55:42 浏览:616