关于shiro介绍以及shiro整合spring,我在另一篇文章中已详细介绍,此处不作说明,请参考spring整合shiro。点我下载源码。
注:数据库三张表和spring整合shiro中的一模一样,在那边已经详细说明,这里直接大家看下三张表的ER图。
图片发自简书App
讯享网
1、用idea新建Spring Initializr项目,项目结构如下:

讯享网 图片发自简书App 2、添加依赖:
3、application.properties
注:spring整合shiro中是只有User实体类,在UserDao中定义了三个方法,通过表的关键关系查询Role和Permission;这里将采用另一种方式,三个实体类,设置实体类的关联关系。
1、entity层
User.java
Role.java
Permission.java
2、dao层
UserDao.java
UserDao.xml
3、service层
4、junit测试
运行结果:

图片发自简书App 5、controller层
TestController.java
说明:这里用户登录方法用到了shiro,但是这里还没配置shiro,所以暂时不能使用,先搭起整个骨架,然后再加入shiro。
6、jsp页面
login.jsp
(登录页面)
现在说一下要求:
admin路由要求只有具有admin角色的用户才能访问,edit路由需要有delete权限的用户才能访问,test路由要guest角色才能访问,login、loginUser都不做拦截,本文讲解两种拦截方式,对test的拦截是在controller对应的方法上加注解,其他是拦截是写在shiro的配置类中。
预期分析:
tom是有admin角色和所有权限,所以用tom登录后,可以访问edit和admin,但是不能访问guest;而cat是guest角色,只有create和query权限,所以不能访问admin和edit,但是可以访问guest。
由于springboot还没有集成shiro,所以不能直接在application.properties中配置,需要通过类的方式配置。
核心配置类:
ShiroConfiguration.java
注:这个类每个bean的作用都已在代码中注释说明,这个类就相当于spring整合shiro的spring-shiro.xml中对shiro的配置。
自定义realm:
AutuRealm.java
注:这个类也有详细的注释说明。
这样就完成了springboot对shiro的整合,接下来就可以进行测试了!
tom登录

讯享网 图片发自简书App 

图片发自简书App tom访问admin

讯享网 图片发自简书App tom访问test

图片发自简书App cat登录

讯享网 图片发自简书App cat访问admin

图片发自简书App cat访问test

讯享网 图片发自简书App 测试结果与预期相符,测试通过,springboot整合shiro成功!
特别说明:
若不使用MD5加密
1、添加一个类
2、将ShiroConfiguration.java中名为”hashedCredentialsMatcher”的bean替换成:
将名为”authRealm”的bean替换成:
3、AuthRealm.java中的doGetAuthenticationInfo方法里面的内容替换成:
完成以上3步就去掉了MD5加密。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199748.html