Spring Boot整合Shiro搭建权限管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Spring Boot整合Shiro搭建权限管理系统
一、Spring Boot入门
1.新建一个maven工程
2.修改pom.xml文件,添加spring boot父工程
3.修改默认编译的jdk版本
4.添加spring boot启动器(web支持)
5.编写controller(UserController)
6.编写启动类Application
7.运行启动类Application(和运行普通的Java程序一样)
8.然后在浏览器输入:http://localhost:8080/hello,就可以
正常访问了,出现如下画面说明启动成功
二、导入thymeleaf页面模块
1.引入thymeleaf依赖
2.在controller当中添加如下方法:
3.在src/main/resources目录下面建立templates目录用
来存放页面(Spting-Boot默认页面存放路径,名字不可更改)
4.在templates目录下新建test.html
th:text="${name}"为thymeleaf语法,获取model中传过来的值
5.在浏览器访问http://localhost:8080/testThymeleaf进
行测试.如果能够在页面上获取到值就说明成功了.
此处需要注意在thymeleaf3.0以前对页面标签语法要求比较严格,开始标签必须有对应的结束标签,如果没有就出现如下错误.
如果页面标签不严谨还希望使用thymeleaf的话,那就需要升级thymeleaf到3.0以上的版本,此处升级为3.0.2
6.升级thymeleaf版本(修复上面的错误),在properties节点
下面添加
三、Spring Boot与Shiro整合实现用户认证
1.Shiro核心API类
Subject: 用户主体(把操作交给SecurityManager)
SecurityManager: 安全管理器(关联Realm)
Realm: shiro连接数据库的桥梁
2.导入shiro与spring整合依赖
3.创建自定义Realm
4.编写shiro的配置类(重点)(最基础的配置类如下)
5.使用shiro内置过滤器实现拦截功能5.1.新建两个页面add.html和update.html
5.2.修改test.html页面
5.3.在UserController当中添加下面的方法
5.4.修改ShiroConfig类
5.5.验证拦截功能,在test页面点击超链接,如果出现以下情况,说明拦
截成功
5.6.设置跳转到自定义登录页面5.6.1.新建一个登录页面login.html
5.6.2.在UserController当中添加如下方法:
5.6.3.修改ShiroConfig类
5.6.4.验证,如果页面调整到自定义登录页面则成功
5.7.使用通配符简化配置,修改ShiroConfig类
将
6.实现用户验证(登录)操作6.1.修改登录页面login.html
6.2.在controller当中添加方法
6.3.在ShiroConfig当中添加如下代码,放行登录操作
6.4.编写UserRealm的认证(判断)逻辑
四、整合Mybatis实现登录功能
1.导入Mybatis相关依赖,修改pom.xml文件
2.新建一个数据库,然后再新建一张数据库表,建表语句如
下(数据库需要手动创建):
3.在src/main/resources目录下面新建
application.properties。(位置和文件名固定)
4.编写实体类User
5.编写查询接口
6.编写UserMapper.xml映射文件
7.编写业务接口和实现
8.在启动类Application当中添加mapper包扫描的注释
9.修改UserRealm的认证逻辑
五、Spring Boot与Shiro整合实现用户授权
1.使用shiro内置过滤器实现资源拦截
1.1.修改ShiroConfig,在过滤器当中添加资源过滤器
1.2.在浏览器访问用户添加功能,如果出现如下页面,则表示拦截成
功(此为shiro自动跳转到的页面,因为没有对应的页面显示,所以就显示错误页面)
1.3.自定义未授权提示页面
1.3.1.新建未授权提示noAuth.html页面
1.3.
2.修改ShiroConfig类
1.3.3.在UserController当中添加如下方法:
1.4.如果浏览器在未授权的情况下跳转到自定义页面说明修改成功
2.修改UserRealm完成Shiro的资源授权
3.连接数据库实现资源动态授权3.1.修改数据库表
3.2.修改实体类User
3.3.修改UserMapper接口,添加方法
3.4.在业务接口和实现类中添加方法
实现类:
3.5.修改UserRealm中的方法
3.6.在ShiroConfig当中新增拦截项
六、thymeleaf和shiro标签整合使用
1.导入thymeleaf扩展依赖,修改pom.xml文件
2.在ShiroConfig当中配置ShiroDialect
3.在页面当中使用shiro标签控制资源显示,修改test.html
页面