- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在正则表达式上花费了很多时间,我认为这些正则表达式简明准确地表示了我想要允许的资源 URI 和操作字符串范围,但它对每个看似有效的匹配都返回拒绝。我还没有看到一个有用的、真实世界(与 hello-world 相对)的 XACML 正则表达式示例,而且我已经看到的许多示例甚至都没有转义 IP 地址中的点!
正则表达式在不同的上下文中有不同的含义,这就是为什么 Perl 正则表达式被这样称呼的原因。通用术语“正则表达式”的使用没有告诉我任何信息,就像我看到的许多 XACML 示例没有告诉我任何可以扩展的信息一样。
我是否错过了一组明确的规则或字符串正则表达式匹配和/或任何 URI 正则表达式匹配的想象力来源?
感谢您容忍我的咆哮。
顺便说一句,我发现没有针对 XACML 的解析器仅针对缺少的 DTD 发出警告并继续解析真实错误。
最后一个问题:从 build.gradle 中摘录的这个依赖项中是否有任何内容可能会阻止正则表达式匹配,即使是像我看到的 XACML 文档中的一些软弱和头脑简单的东西?
compile group: 'org.herasaf', name:"xacml-core", version: 'latest.integration'
最佳答案
一个问题中有这么多问题。我建议你把它分开。另外,你的问题很宽泛。不是高质量答案的最佳格式,但这里是。
实际上您说对了:使用 XACML 编写良好的基于属性的访问控制策略可能不应该使用正则表达式。当用于做出决策的属性值未规范化时,您通常会使用正则表达式。例如,假设您想将电话号码与北卡罗来纳州罗利市(区号 919)匹配。您将使用正则表达式(或者可能更简单地使用 stringIsIn
)。但实际上,您应该做的要么是给定电话号码返回区号的函数,要么 - 甚至更好的是 - 给定电话号码返回其所属城镇的策略信息。
我为 Axiomatics 客户编写了很多策略,我唯一必须使用正则表达式匹配的情况是数据脏且未规范化时。
反对使用 regexp-match 的另一个论据是它使策略更难理解。你想保持简单,例如
A person can view a medical record if they own the record or if therecord is owned by a dependent.
这是有意义的和人类可读的。正则表达式不是。
在同一类别中,您可以添加属性选择器,XACML 中的此功能可以定义 XPath 表达式以从 XML 内容中提取信息。
根据定义,XACML 解析器是仅验证文档结构的 XML 解析器。这就是 XML 解析的工作原理。这就是 DTD(或 XSD)的工作原理。如果您使用无效值,您将不会收到警告。例如在 XACML 中,如果您使用伪造的数据类型,例如bla:fake:NotBoolean,那么针对 XACML 模式的纯 XML 解析器就不会报错。
您需要实现额外的逻辑。我很确定 SunXACML 引擎会给你这个。或者,Axiomatics 引擎会。它会提示存在未知的数据类型,组合算法或函数。
无论如何,没有一个解析器会告诉您该策略是否有意义。如果你写了一个目标说 a>1 AND a<1(这永远不会发生),解析器不会告诉你有一个无效的表达式。从它的角度来看,它并不无效。
如果我没记错的话,HerasAF 已经很老了。我会尝试以下任何一项:
关于regex - 当 XACML 谈到 "regexp-match"时,它指的是哪个正则表达式规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33131489/
我是一名优秀的程序员,十分优秀!