当前位置: 首页 > news >正文

微信小程序制作软件哪个好/南京网络推广优化哪家好

微信小程序制作软件哪个好,南京网络推广优化哪家好,哔哩哔哩视频推广,wordpress 改变文件属性字符串通配符权限 规则:“资源标识符:操作:对象实例ID” 即对哪个资源的哪个实例可以进行什么操作。 其默认支持通配符权限字符串,“:”表示资源/操作/实例的分割;“,”表示操作的分割;“*”表示任意资源/…

字符串通配符权限
规则:“资源标识符:操作:对象实例ID” 即对哪个资源的哪个实例可以进行什么操作。

其默认支持通配符权限字符串,“:”表示资源/操作/实例的分割;“,”表示操作的分割;“*”表示任意资源/操作/实例。

1. 单个资源单个权限

subject().checkPermissions("system:user:update");

用户拥有资源"system:user"的"update"权限

2. 单个资源多个权限
ini配置文件

[users]
zhang=123,role1,role2,role41
wang=123,role1
[roles]
role1=system:user:create,system:user:update
role2=system:user:create,system:user:delete
role41=system:user:update,system:user:delete

通过如下代码判断:

subject.checkPermissions("system:user:update","system:user:delete");

用户拥有资源“system:user”的“update”和“delete”权限。如上可以简写成:ini配置(表示角色4 拥有system:user资源的update和delete 权限)

role41="system:user:update,delete"

通过如下代码判断

subject.checkPermissions("system:user:update,delete");

或者

subject.checkPermissions("system:user:update,delete");

3. 单个资源全部权限
ini配置

role41="system:user:create,update,delete,view"

然后通过如下代码判断

@Test
public void testCheckPermission(){login("classpath:shiro-permission2.ini","zhang","123");Subject subject = SecurityUtils.getSubject();subject.checkPermissions("system:user:create,update,delete,view");
}

用户拥有资源"system.user"的"create"、“update”、"delete"和"view"的所有权限。
如上可以简写成:
ini配置文件(表示角色5拥有system:user的所有权限)

role52=system:user:*

也可以简写为(推荐上边的写法):

role53=system:user

然后通过如下代码判断

subject().checkPermissions("system:user:*");
subject().checkPermissions("system:user");

通过“system:user:*”验证“system:user:create,delete,update:view”可以,但是反过来是不成立的。

4. 所有资源全部权限
ini配置
role6=*:view

然后通过如下代码判断

subject().checkPermissions("user:view");

用户拥有所有资源的“view”所有权限。假设判断的权限是“"system:user:view”,那么需要“role5=::view”这样写才行。

5. 实例级别的权限
(1)单个实例的单个权限
ini配置

role71=user:view:1

对资源user的1实例拥有view权限
然后通过如下代码判断

subject().checkPermissions("user:view:1");

(2)单个实例多个权限
ini配置

role72="user:update,delete:1"

对资源user的1 实例拥有update、delete权限。
然后通过如下代码判断

subject().checkPermissions("user:delete,update:1");subject().checkPermissions("user:update:1", "user:delete:1");

(3)单个实例所有权限
ini配置

role73=user:*:1

对资源user的1 实例拥有所有权限。
然后通过如下代码判断

subject().checkPermissions("user:update:1", "user:delete:1", "user:view:1");

(4)所有实例所有权限
ini配置

role74=user:auth:*

对资源user的所有 实例拥有auth权限。
然后通过如下代码判断

subject().checkPermissions("user:auth:1", "user:auth:2");

(5)所有实例所有权限
ini配置

role75=user:*:*

对资源user的所有实例拥有所有权限。
然后通过如下代码判断

subject().checkPermissions("user:view:1", "user:auth:2");

6.Shiro对权限字符串缺失部分的处理

如“user:view”等价于“user:view:*”;而“organization”等价于“organization:*”或者“organization:*:*”。可以这么理解,这种方式实现了前缀匹配。另外如“user:*”可以匹配如“user:delete”、“user:delete”可以匹配如“user:delete:1”、“user:*:1”可以匹配如“user:view:1”、“user”可以匹配“user:view”或“user:view:1”等。即*可以匹配所有,不加*可以进行前缀匹配;
但是如“*:view”不能匹配“system:user:view”,需要使用“*:*:view”,即后缀匹配必须指定前缀(多个冒号就需要多个*来匹配)。

7.WildcardPermission
如下两种方式是等价的:

@Test
public void testCheckPermission(){login("classpath:shiro-permission2.ini","zhang","123");Subject subject = SecurityUtils.getSubject();subject.checkPermissions("system:user:view");subject.checkPermission(new WildcardPermission("system:user:view"));
}

因此没什么必要的话使用字符串更方便。

8.性能问题
通配符匹配方式比字符串相等匹配来说是更复杂的,因此需要花费更长时间,但是一般系统的权限不会太多,且可以配合缓存来提供其性能,如果这样性能还达不到要求我们可以实现位操作算法实现性能更好的权限匹配。另外实例级别的权限验证如果数据量太大也不建议使用,可能造成查询权限及匹配变慢。可以考虑比如在sql 查询时加上权限字符串之类的方式在查询时就完成了权限匹配。

http://www.lbrq.cn/news/1396117.html

相关文章:

  • 企业信息查询系统官网江苏/网站如何做seo排名
  • 中国纪检监察报理论版/青岛官网seo方法
  • 品牌服装网站源码/软文代写公司
  • 网站图片 优化/hao123网址之家官网
  • 网站页脚内容/卡一卡二卡三入口2021
  • 课程建设类教学成果奖网站/谷粉搜索谷歌搜索
  • 陈坤做直播在哪个网站/seo搜索铺文章
  • html5 单页网站/外贸网站建设流程
  • 网站建设套餐自助报价/福州seo外包公司
  • 网站建设置顶/百度收录方法
  • 如何做微网站平台/网络服务提供者收集和使用个人信息应当符合的条件有
  • 怎么把本地wordpress上传到服务器/优化教程网官网
  • asp.net 网站压缩/友链交易交易平台
  • 网站建设实训室/推广app赚佣金平台有哪些
  • 太原建站模板搭建/陕西网站推广公司
  • 石家庄定制网站建设/seo就业前景
  • 溧阳网站制作/广州seo公司哪个比较好
  • 娱乐网站制作/海淀区seo搜索引擎优化企业
  • 手机动态网站制作/北京百度快照推广公司
  • 无锡网站建设哪家做的比较好/专业外贸网络推广
  • 赛多利斯科学仪器北京有限公司/网站优化推广怎么做
  • 柳州网站建设找哪家好/口碑seo推广公司
  • wordpress能导入多少产品/什么是搜索引擎优化的核心
  • 学校网站div css模板/广点通
  • 网站怎么做app/哪些平台可以免费打广告
  • 黑客网站免费盗号/宁波seo整站优化
  • 学做莱网站/今天中国新闻
  • jsp网站建设项目实战源代码/百度百科创建
  • 微网站开发视频/最新国际新闻事件今天
  • 怎么样做贷款网站/下载百度语音导航地图安装
  • 使用C++17标准 手写一个vector
  • 我从零开始学习C语言(12)- 循环语句 PART1
  • 使用安卓平板,通过USB数据线(而不是Wi-Fi)来控制电脑(版本1)
  • 版本软件下载电脑适配说明
  • 大数据毕业设计选题推荐-基于大数据的1688商品类目关系分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • Ubuntu-安装Epics Archiver Appliance教程