Shiro源码分析 -- Subject.isPermitted(permission)已登陆用户判断是否具有某权限

本文深入探讨了在Spring MVC环境下,使用Shiro框架时如何通过Subject.isPermitted()方法检查已登录用户是否具备特定权限,例如system:role:add。文章通过单步调试揭示了Shiro内部的权限判断逻辑。
摘要由CSDN通过智能技术生成

这行代码用来判断已登陆用户是否具有某权限

subject.isPermitted(permission.getPermission());
假设登陆用户已有权限:system

我们需要判断的权限:    system:role:add


问题在于,此时shiro会判断用户具有system:role:add权限。

通过单步跟踪找到:

WildcardPermission.implies(Permission p)方法。
    public boolean implies(Permission p) {
        // By default only supports comparisons with other WildcardPermissions
        if (!(p instanceof WildcardPermission)) {
            return false;
        }

        WildcardPermission wp = (WildcardPermission) p;

        List<Set<String>> otherParts = wp.getParts();

        int i = 0;
        for (Set<String> otherPart : otherParts) {
            // If th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值