Shiro授权的基本流程

Shiro的授权流程

用户访问系统资源时的授权流程如下:
在这里插入图片描述
系统调用subject主体对象相关方法将用户权限信息(例如isPermitted)递交给SecurityManager
SecurityManager将权限检测操作委托给Authorizer授权管理器对象
Authorizer授权管理器将用户信息委托给realm
Realm访问数据库获取用户权限信息(有没有权限,有什么样的权限)并封装
Authorizer对用户授权信息进行判定(判断用户访问资源时需要什么权限,假如用户所具有的权限包含这个资源访问时所需要的权限,那么用户就可以访问这个资源了)。
不是每一个用户都能访问系统中的所有资源,能访问哪些资源需要有一个授权的过程,这个授权的对象叫做Authorizer。

授权方式

Shiro支持四种方式的授权验证
Suject subject = SecurityUtils.getSubject();
(1)代码级别权限控制:通过写 if/else授权代码块完成,前面测试类中即该方式

  • if ( subject.hasRole(“管理员”)){
    // 有权限
    }else{
    //无权限
    }
    (2)页面标签权限控制:在页面通过相应的标签完成
    <shiro:hasRole name=“管理员”>
    <!-有权限->
    </shiro:hasRole>
    (3)方法注解权限控制:通过在执行的Java方法上添加相应的注解完成
    @RequiresRoles(“管理员”)
    public String add(Model model){
    //有权限
    }
    (4)URL拦截权限控制:在 ShiroFilterFactoryBean对象中配置URL拦截规则完成
    filterChainDefinitionMap.put("/login",“anon”);
    filterChainDefinitionMap.put("/user/add",“perms[用户添加]”);
    filterChainDefinitionMap.put("/user/edit",“perms[用户编辑]”);
    filterChainDefinitionMap.put("/user/del",“perms[]用户删除]”);

SpringBoot+Shiro授权思路以及代码过程

SpringBoot集成Shiro思路以及代码过程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值