Shiro安全框架(授权部分)

本文主要介绍Shiro安全框架的授权部分,包括如何判断用户权限、如何为用户赋予角色和权限,以及Shiro提供的不同业务场景下的权限验证。通过示例代码展示了SimpleAuthorizationInfo对象在授权过程中的作用,帮助理解Shiro授权机制。
摘要由CSDN通过智能技术生成

       看过我的Shiro认证部分博文的童鞋们一定已经对Shiro安全框架有了一些的认识,关于Shiro框架大致的认证流程,框架内部为我们提供了哪些功能实现,都有了大致的了解,这篇博文主要大致讲解一下shiro授权的部分的具体实现流程,和代码片段。

       授权,顾名思义是判断用户具体的有哪些权限,我们去开发一个系统,首先看来访者有没有访问系统的权限,进入系统的这一方面是认证,而在用户进入了 我们的系统之后,我们的系统会有很多的菜单或者对资源的增删改查操作,并不是所有的用户都能对我们的系统进行所有操作,假设我们是一个商城的小系统,订单的创建,订单的管理,用户的管理都不是所有用户可以操作的,有些账号只拥有查看的权限,而有一些比如admin账号才具有对系统某些核心模块的操作。但是大的流程不会变得是所有的用户在进入系统之前首先是要经过认证,如果都没有通过认证当然就不去判断用户是否具有哪些权限。

  那接下来我就接着上次的认证代码继续写,没看过我上一篇博文的童鞋可以去看一下,

  传送门:https://blog.csdn.net/JavaJieRui/article/details/108465791

       首先,我们调用subject(主体)的 hasRole("admin") 方法,这个方法是用来看主体对象有没有某一个具体的权限,假设我们来看一下主体对象有没有admin的权限:

if (subject.isAuthenticated()) {
            System.out.println(subject.hasRole("admin"));
        }

        结果一定是没有,为什么呢?因为在我们的自定义Realm里没有对用户的权限进行添加,只是在方法中返回了一个null值,因为在调用这个方法的时候他会去找我们自定义Realm中的 doGetAuthorizationInfo 方法,而我们只是返回了一个null值,所以会输出false:

doGetAuthorizationInfo 方法代码片段:

/**
     * 授权
     * @param principalCollection
     * @return
     */
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        return null;
    }

  输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值