shiro入门

shiro的功能:验证,授权,会化管理,加密
三个核心的组件:Subject,SecurityManager,Realm
框架的应用
导入相关的jar包
在web.xml中配置安全过滤器(注意此过滤器一定要放在struts2过滤器前面)
在这里插入图片描述
添加配置shiro的spring配置文件

在这里插入图片描述在进行认证操作的时候通过参数AuthenticationToken arg0获取到令牌,里面封存着登录页面传递过来的用户名和密码,这样就可以通过转换在realm中进行逻辑判断

在这里插入图片描述记得在reaml中引入empBiz的逻辑业务,并且注入到realm的bean

在这里插入图片描述不要忘了要把登录成功后的用户信息存储到session中

在这里插入图片描述授权的应用
授权的方法同样存在在自定义的realm类中,执行授权逻辑业务的时候需要把权限控制的业务逻辑引用到realm中

在这里插入图片描述同样在shiro的配置文件中引入
编写实现授权的代码

在这里插入图片描述在shiro的配置文件中URL访问策略中添加所有的URL权限,但是有的时候多个权限公用一个URL地址,此时只有用户同时具有这两种权限的时候才能发挥作用它们之间是并且的关系,所以我们需要自己定义授权过滤器来将它们的关系变成或的

在这里插入图片描述配置文件中的配置首先添加自定义授权过滤器的bean
在这里插入图片描述
在shiro安全过滤器中添加属性为filters的过滤器集合,将自定义授权过滤器放置到里面并且添加依赖关系

在这里插入图片描述细颗粒权限控制,方法级别的授权,我们需要在配置文件中添加配置开启shiro的注解
在这里插入图片描述
然后要对哪个方法加以授权控制的话只需在方法的上面个加上注解即可
在这里插入图片描述
细颗粒权限控制 – 代码级别的授权
我们现在的权限控制目前有一处存在问题,看下面截图
在这里插入图片描述
红框中的设置,采购申请和销售订单录入都需要调用add 方法 ,对于这种情况,我们需要更细级别的控制,要在代码中进行控制。采购申请传过来的参数是1,销售订单录入传过来的参数2 ,在URL级别控制没办法加参数。这种情况下我们需要在代码中进行权限控制
在这里插入图片描述
获得subject 后用isPermitted方法可以判断当前用户是否具有某权限,如果没有权限则抛出自定义异常,在action捕获异常
在这里插入图片描述
在这里插入图片描述
标签级别的授权
在这里插入图片描述
在这里插入图片描述
密码加密
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值