SpringBoot怎么整合Shiro实现权限控制index


这篇文章主要介绍“SpringBoot怎么整合Shiro实现权限控制”,在日常操作中,相信很多人在SpringBoot怎么整合Shiro实现权限控制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot怎么整合Shiro实现权限控制”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。shiro有个核心组件,分别为Subject、SecurityManager和RealmsSubject:相当于当前操作的”用户“,这个用户不一定是一个具体的人,是一个抽象的概念,表明的是和当前程序进行交互的任何东西,例如爬虫、脚本、等等。所有的Subject都绑定到SecurityManager上,与 Subject 的所有交互都会委托给 SecurityManager;可以把 Subject 认为是一个门面;SecurityManager 才是实际的执行者。SecurityManager:这个是shiro框架的核心,所有与安全相关的操作都会与它进行交互,它管理者所有的Subject。Realms:充当了Shiro与应用安全数据间的”桥梁“,当对用户执行认证(登录)和授权(访问控制)验证时,SecurityManager 需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作。1.2.1、Maven的配置shiro默认是与jsp进行使用的,而这里是shiro整合thymeleaf所有要导入shiro整合thymeleaf的jar包1.2.2、整合需要实现的类一般来说整合只需要完成两个类的实现即可一个是 ShiroConfig 一个是 CustomerRealm如果需要添加shiro缓存并且不是自带的缓存而是redis缓存还需要进行另外两个类的编写一个是 RedisCache 一个是 RedisCacheManager1.2.3、项目结构1.2.4、ShiroConfig的实现未加shiro的缓存因为一般在数据库中设置明文密码不安全,所有我这里对密码进行了md5加密,我的加密方式为:密码 = 密码+盐+散列次数 而后进行MD5加密 所以这里创建自定义的realm时需要进行设置匹配器这样登录时密码才能匹配成功1.2.5、CustomerRealm的实现在登录时会自动调用这个身份验证 在验证时如果出错,会报异常,我在controller层接收了异常并处理contr 香港云主机oller层中登录时的异常处理1.2.6、shiro缓存配置定义了shiro缓存,用户登录后,其用户信息、拥有的角色 / 权限不必每次去查,这样可以提高效率默认缓存的配置在 ShiroConfig中 的 getRealm() 方法中开启缓存管理与reids整合的缓存这里就不说明了,放在源码里自己查看,源码在下方1.2.7、主页index.html的设置在这里用标签来判断某些区域需要认证或什么角色或者什么权限才能访问1.3.1、admin角色所有权限测试1.3.2、无角色有权限测试1.3.3、无角色无权限测试
到此,关于“SpringBoot怎么整合Shiro实现权限控制”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: js怎么自定义构造函数并创建对象

这篇文章主要介绍了js怎么自定义构造函数并创建对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js怎么自定义构造函数并创建对象文章都会有所收获,下面我们一起来看看吧。1、函数内部不需 香港云主机要new构建函数的过程,直接用th…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/15 09:48
下一篇 07/15 09:48

相关推荐