Shiro 的Permissions
发布日期:2021-05-24 06:08:10 浏览次数:21 分类:精选文章

本文共 1071 字,大约阅读时间需要 3 分钟。

Permissions String Syntax Guide

简 单 的 字 符 表示 permissions,例如 queryPrinter。 该语法采用层级划分,分别从功能领域、操作权限、主题实例等多个维度进行控制。以下是该语法的核心规则和实际应用示例。

####多层级权限划分 系统 权限字符串由三个部分构成:功能域、操作权限和主题实例。各部分之间采用冒号(:)分隔,具体规则如下:

  • 功能域与操作的结合

    权限字符串的第一部分(前面没有冒号)通常用于限定权限适用的功能域。例如:

    printer:print  // 打印机功能中执行“print”的操作
    printer:query // 打印机功能中执行“query”的操作
  • 冒号分隔的三部分

    完整的权限字符串通常包含三部分:领域操作主题实例。例如:

    printer:query:lp720  // 打印机功能中执行“query”操作,应用于“lp720”打印机型号
    printer:print:* // 打印机功能中所有支持的操作权限

    可以使用通配符*表示未明确指定的操作或实例。

  • 部分省略规则

    为了简化书写,部分组成部分可以省略:

    • 如果操作部分省略,则表示所有操作,等同于printer:print:*
    • 如果实例部分省略,则表示所有实例,等同于printer:*:*

    值得注意的是,某些参数省略时可能会改变实际含义。例如:

    printer:lp720  // 只指定了一个实例,不等于 printer:print:lp720

    在未明确指定操作时,默认可能采用默认操作(如“view”或“read”,具体取决于系统设置)。

  • Permissions String 的实际案例

    以下是几种典型的权限字符串示例:

    • 基本权限
      user:read,write  // 用户可以读取和写入文件
      admin:* // 管理员拥有所有权限
    • 多层级权限
      db:query,update  // 数据库可以执行查询和更新操作
      server:ping,* // 服务器可以执行“ping”和所有其他操作
    • 主题实例化控制
      printer:query:lp500,hp800  // 打印机功能中执行查询操作,适用于“lp500”和“hp800”打印机
    • 通配符的应用
      printer:print:*  // 打印机可以执行所有相关操作
      *:view // 所有功能可以执行“view”操作

    通过合理搭配这些语法元素,可以为系统权限管理提供灵活且细化的控制策略,充分满足不同用户角色的需求。

    上一篇:Shiro 的身份认证
    下一篇:shiro 配置-ini配置方式

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月11日 00时27分06秒