shiro请求授权实现

shiro请求授权实现

  • 首先在ShiroConfig中配置授权链条

//授权(正常情况下未授权会跳转到未授权页面)配置授权链条
filterMap.put("/toAdd",“perms[user:add]”);
filterMap.put("/toUpdate", “perms[user:update]”);
//拦截所有的必须放在授权下面,不然拦截失败
filterMap.put("/**",“authc”);

  //授权(正常情况下未授权会跳转到未授权页面)配置授权链条
        filterMap.put("/toAdd","perms[user:add]");
        filterMap.put("/toUpdate","perms[user:update]");

        //设置未授权的请求(未授权页面)
        factoryBean.setUnauthorizedUrl("/unauthorized");
  • 在MyRealm中进行配置
 //角色和权限
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        System.out.println("执行了=>授权doGetAuthorizationInfo");
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
//        info.addStringPermission("user:add");
        //拿到当前登录的这个对象
        Subject subject = SecurityUtils.getSubject();
        User currentUser = (User) subject.getPrincipal();//拿到User对象
        String perms = currentUser.getPerms();//获取当前用户的权限
        info.addStringPermission(perms);//设置当前用户的权限
        return info;
    }

shiro多权限

数据库设计
在这里插入图片描述
将权限用逗号隔开

  • 代码设计
  SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        Subject subject = SecurityUtils.getSubject();
        User currentUser = (User) subject.getPrincipal();
        String perms = currentUser.getPerms();
        String[] strings = perms.split(",");
        Collection<String> permissions=new ArrayList<>();
        for (String string : strings) {
            permissions.add(string);
        }
        info.addStringPermissions(permissions);
        return info;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值