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

SpringBoot + Shiro (四)缓存&记住密码,第1张

最终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

最后帮朋友打个小广告

一个有趣的迷你小程序

在ShiroRealm 中 对所有 引入的service 加上注解 @Lazy ,防止 事务回滚失败。 具体原因看该文章

新增整合swagger2,因为之前整合了shiro,所以再访问swagger的时候总是被拦截导致无法访问,因此在ShiroConfiguration配置文件中,放开对swagger的拦截

新增CORS跨域配置。

待解决问题:前端利用vue传sessionid,后台通过shiro接收一直接收不到,后前端改成jQuery才可以,不知道问题出在哪

新增@RequiresRoles角色控制,个人感觉@RequiresRoles角色控制,属于粗粒度,@RequiresPermissions属于细粒度,因为@RequiresPermissions能给每个接口定义不同的权限

如下:

@RequiresRoles(value = "admin")

@RequiresPermissions("user:updateSysUser")

两者属于and 的关系,同时添加注解,会先验证此接口是否有规定的角色,然后验证是否有该权限,必须同时满足才会通过认证

@RequiresPermissions多权限是分两种的,这里要注意

第一种:必须全部符合(默认不写或者在后面添加logical = Logical.AND)

@RequiresPermissions(value={“studentMan:find_record_list”,“teacher:find_record_list”皮前基})

上面这种情况是默认当前对象必须同时全悔缓部拥有指定权限

第二种:符合其中一个即可(logical = Logical.OR)

@RequiresPermissions(value={“studentMan:find_record_list”,“teacher:find_record_list”},logical=Logical.OR)

上面这种情况则是只要有其中燃谨一个权限即可访问

pom文件

主要目的通过sessionid验证用户的登录状态

权限表

角色表


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12295527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存