【问题标题】:XACML regex not matchingXACML 正则表达式不匹配
【发布时间】:2019-09-21 02:46:55
【问题描述】:

我们有一个包含很多规则的 XACML 文件,我们不想处理所有规则。我们正在尝试添加一个不会适用于所有规则而仅适用于某些规则的 Target 标签。

我们尝试使用正则表达式 "abc:def:gh:1234.*" 并希望仅处理与此表达式匹配的属性的规则

但是有这种模式的规则不匹配,我们想匹配这种模式

"abc:def:gh:1234:test"

"abc:def:gh:1234-test"

只有这个字符串模式匹配 "abc:def:gh:1234.Test" 4 之后的任何内容都带有“。”正在匹配

我们只需要检查字符串的开头并尝试过

"^abc:def:gh:1234"

我们也尝试过包含

"abc:def:gh:1234"

但是没有一个正则表达式有效,非常感谢任何正则表达式的帮助

<Target>
  <AnyOf>
    <AllOf>
      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
        <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">abc:def:gh:1234.*</AttributeValue>
        <AttributeDesignator AttributeId="jpmc:resource:resource-id" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
      </Match>
    </AllOf>
  </AnyOf>
</Target>

【问题讨论】:

  • 您使用的是什么授权引擎?此外,这似乎更像是一个正则表达式问题,而不是 XACML 本身。您是否尝试过评估 Java 中的正则表达式?
  • 你为什么不给一个前后。无法说出你想要做什么!!!

标签: regex regex-negation xacml abac


【解决方案1】:

您应该避免使用正则表达式(通常),尤其是在 XACML 中。 XACML 策略旨在易于阅读。尝试使用以下任何函数( 表示法):

  • 字符串相等
  • stringEndsWith
  • stringStartsWith
  • 字符串包含

或者,您应该处理/规范化策略执行点 (PEP) 或策略信息点 (PIP) 中的值。 Axiomatics(我工作的地方)有一个 Groovy PIP,它可以让你做这些事情并保持你的策略干净。

【讨论】:

    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多