AbacTags

ABAC 标签集合。

结构为 Map,支持一个 key 对应多个 value。

使用示例:

// 用户标签:属于工程部和产品部,角色为管理员
mapOf(
"dept" to listOf("eng", "pm"),
"role" to listOf("admin")
)

// 文档标签:仅允许工程部访问
mapOf(
"dept" to listOf("eng")
)

// 公开资源:无标签或空标签表示完全公开
emptyMap()

空值处理规则:

  • 空字符串 key(如 "")视为无效标签

  • 空列表 value(如 listOf())视为无标签

  • 推荐在构建时过滤这些无效值:

tags.filter { it.key.isNotBlank() && it.value.isNotEmpty() }

通配符:

  • ["*"] 表示匹配该 key 下的所有值 例如:mapOf("dept" to listOf("*")) 可访问任何部门的资源