跟我学shiro——realm之资源权限(4)

使用ini的方式完成授权

  1. 编写ini 文件
    在ini文件中用户、角色、权限的配置规则是:“用户名=密码,角色1,角色2...” “角色=权限1,权限2...”,首先根据用户名找角色,再根据角色找权限,角色是权限集合。

权限字符串的规则是:“资源标识符:操作:资源实例标识符”,意思是对哪个资源的哪个实例具有什么操作,“:”是资源/操作/实例的分割符,权限字符串也可以使用通配符。
例子:
用户创建权限:user:create,或user:create:

用户修改实例001的权限:user:update:001
用户实例001的所有权限:user:*:001

一般而已,我们操作只需要关注前面两节:
资源:操作 :
: : 所有资源的所有操作权限--->admin

[users]
zhangsan=222,role1,role2
lisi=888,role2
[roles]
role1=user:create,user:update
role2=user:creat,user:delete
role3=user:creat
  1. 测试结果
    public void realmRole() {
        //获取SecurityManager的实例
        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:relmRole.ini");
        SecurityManager securityManager = factory.getInstance();
        SecurityUtils.setSecurityManager(securityManager);
        Subject subject = SecurityUtils.getSubject();
        UsernamePasswordToken token = new UsernamePasswordToken("zhangsan", "222");
        subject.login(token);
        log.info("登录是否成功!"+subject.isAuthenticated());
        log.info("验证是否有role1权限"+subject.hasRole("role1"));
        log.info("验证是否有role1,role2权限"+subject.hasAllRoles(Arrays.asList("role1","role2")));
        log.info("验证是否有role1,role2权限"+Arrays.toString(subject.hasRoles(Arrays.asList("role1","role2"))));
        log.info("登录是否成功!"+subject.isAuthenticated());

        log.info("验证是否对user资源delete操作"+subject.isPermitted("user:delete"));

    }
2018-10-08 11:04:23.989  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 登录是否成功!true
2018-10-08 11:04:23.990  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 验证是否有role1权限true
2018-10-08 11:04:23.990  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 验证是否有role1,role2权限true
2018-10-08 11:04:23.990  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 验证是否有role1,role2权限[true, true]
2018-10-08 11:04:23.990  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 登录是否成功!true
2018-10-08 11:04:23.990  INFO 168 --- [           main] c.tuyue.SpringbootshiroApplicationTests  : 验证是否对user资源delete操作true

自定义relam方式完成授权

转载于:https://www.cnblogs.com/xkkdev/p/10826617.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值