WildcardPermission的格式应用

来源:互联网 发布:有关打击电信网络诈骗 编辑:程序博客网 时间:2024/06/05 02:57
  • WildcardPermission,权限字符串的表示方式。

这里重点声明一下。WildcardPermission 是 Shiro 的精妙之处,我们可以将权限表示成字符串,这样对权限的控制可以不拘泥于物理存储,比如对 messagge 类具有修改和删除权限可以标识为:message:update,delete:*,其中‘ * ’表示所有;第一级分隔符为‘ : ’;第二级分隔符为‘ , ’,而对于权限字符串的解释完全可以由应用自己来定。

如果要比较权限字符串,可以使用 permission1.implies(permission2),它分别比较对应位置的字符串,在如下情况中,结果会返回 true:

  • permission1 中的子串有 * 或 permission1 子串 ==permission2 子串;
  • permission1 无子串,permission2 有;
  • permission1 有子串,permission2 无,permission1 的所有子串都是 *。

总的说来,Shiro 中的 Permission 需要注意如下内容:

  1. 权限的比较实际是字符串的比较,只不过是考虑到了字符串的分级
  2. 字符串的分级划分完全由使用者自己决定,Shiro 的惯例是 3 级:资源 : 操作 : 实例。
  3. 字符串的使用必须一致,分隔符之间不要有空格,避免无意间引入的不一致。如:定义使用“file : create, update : 1”,而验证使用“file : update”,那么分解之后一个是“ update ”,一个是“ update”,因空格而引起不等。
摘自:http://www.ibm.com/developerworks/cn/opensource/os-cn-shiro/
0 0