shiro 授权

授权的三要素: 用户,角色,权限

把权限 赋给角色, 把角色和一个多个用户相关联

授权: 匹配过程

Shiro判断用户是否有权限的 三种方式

1. 编写代码—— 在java代码中 使用ifelse块 执行授权检查

基于角色:使用Subject的hasRole方法

    Subject currentUser = SecurityUtils.getSubject();
    //登录过程省略
    List<String> roles = new ArrayList<String>();
    roles.add("role1");
    roles.add("role2");
    roles.add("role3");

    // 1.检查currentUser是否被分配了角色role1
    boolean result1 = currentUser .hasRole("role1");

    // 2.检查currentUser是否被分配了所有角色
    boolean result2 = currentUser .hasAllRoles(roles);

    // 3.检查currentUser是否被分配了所有角色,返回一个与方法参数中目录一致的hasRole结果集
    boolean[] results = currentUser .hasRoles(roles);


基于角色:断言支持,与使用hasRole的if else一样

    //1.如果currentUser被分配了role1,才会继续执行    
    currentUser.checkRole("role");

基于权限:Subject的isPermitted方法

    boolean flag = currentUser.isPermitted("p1:create");

基于权限:断言支持:Subject的isPermitted方法

    currentUser.checkPermission("p1:create");

2 JDK 的注解—— 添加授权注解给java方法

基于注解的做法,需要AOP框架支持。所以需要和Spring集成。>

shiro提供的注解

3 JSP/GSP 标签库 —— 控制基于角色和权限的jsp页面输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值