shiro 之受权

1 shiro受权数据库

1.1 受权流程

 

// 基于资源受权ide

              System.out.println("是否拥有某一个权限:" + subject.isPermitted("user:delete"));spa

              System.out.println("是否拥有多个权限:" + subject.isPermittedAll("user:create:1",       "user:delete"));ip

对应的check方法:ci

subject.checkPermission("sys:user:delete");资源

subject.checkPermissions("user:create:1","user:delete");字符串

 

// 受权get

       @Overrideit

       protected AuthorizationInfo doGetAuthorizationInfo(io

                     PrincipalCollection principals) {

              // 获取身份信息

              String username = (String) principals.getPrimaryPrincipal();

              // 根据身份信息从数据库中查询权限数据

              //....这里使用静态数据模拟

              List<String> permissions = new ArrayList<String>();

              permissions.add("user:create");

              permissions.add("user.delete");

             

              //将权限信息封闭为AuthorizationInfo

             

              SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();

              for(String permission:permissions){

                     simpleAuthorizationInfo.addStringPermission(permission);

              }

             

              return simpleAuthorizationInfo;

       }

 

 

1.2 权限字符串规则

    权限字符串的规则是:“资源表示符:操做:资源实力标识符”,意思是对哪一个资源的哪一个实例具备什么操做,“:”是资源/操做/实例的分隔符,权限字符串也可使用【*】通配符

例如:

    用户建立权限:usercreate usercreate*

    用户修改实例001的权限:userupdate001

    用户实例001的全部权限:user*001

相关文章
相关标签/搜索