shiro+springmvc图书系统新增图书权限认证

关于shiro的概念及学习路线shiro学习
讲的很好了,我这里只是记录下自己的一些体会,首先整合shiro还是用之前的图书管理系统,是基于这一版activeMQ实践(三)—用spring-activemq实现图书的新增来整合的,结构有点改变首先放项目的github地址:shiro+springmvc
shiro的在一般的使用使用场景中一般和spring结合在一块就能满足大部分功能的开发了,如果是单纯的去学习使用还是学习很快的,我们只需要理解中心思想:

一个用户可以分配给它多个角色,而一个角色可以分配给它多个权限。

在程序中通过权限控制谁能访问某个资源,角色聚合一组权限集合;这样假设哪个角色不能访问某个资源,只需要从角色代表的权限集合中移除即可;无需修改代码
所以我们需要在数据库里添加用户表,角色表以及权限表。
用户表,它和角色表用roleId关联

角色表

权限表,权限表也通过roleId关联,这里我们给roleId为1的角色admin配置了add图书的权限

主要通过这三张表来关联,很明显能看出来角色是权限和用户的维系者,这个从我们UserMapper.xml的查询语句也能看出来。

然后项目关键代码,首先肯定是controller,我这里直接截图来看,源代码上面的github地址已经放出来了:

这里写图片描述

这里写图片描述

上面的图分别是UserController和我们自定义用来验证的MyRealm类,我打了四个断点,执行顺序如图:
获取主体(代表用户),然后拿到token(用户密码),去login,login先验证用户,再验证权限。
基本上一个shiro登录验证就这样完成了,而我们主要去配置的相关信息是在spring-dao.xml中配置的:

这里写图片描述

spring-dao.xml内容很多,shiro大多数配置都是按部就班,主要是在图中圈出的部分配置我们的权限。
这里表示游客用户可以访问login,admin下的资源都只允许认证通过的用户访问,/book/addPage 该url只允许有add权限的用户访问。
对应到list.jsp中的一个显示模块就是:

这里写图片描述

只有拥有add权限(数据库配好的角色admin用户为zhangs)才能看的见这个模块,lis的角色就没有add权限在这里就看不见,同理由于spring-dao.xml shiro过滤链的配置也不能访问http://localhost:8080/book/addPage

最后的效果图:
没有add图书权限的lis登录

有add权限的zhangs登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值