0

描述

我创建了多个 XACML 文件,其中包含根据first-applicable规则组合算法评估的多个策略。

有时我无法避免 XACML 中的代码重复,我必须在 XACML 文件的多个位置复制某个 XACML 策略。

<import file="xacml/deny-policy.xacml"/>是否可以通过xml 或其他方式避免 XACML 中的代码重复?

4

2 回答 2

2

实际上,已经有办法在另一个策略中引用已经存在的策略以实现可重用性。您可以使用以下两种方式之一:

  1. 使用策略 ID 参考:在另一个策略/策略集中调用现有策略。
  2. 使用策略集 id 参考:在另一个策略集中调用现有策略集

例如,下面是在另一个策略中调用现有策略的方法:

现有政策“policy1”将被恢复:

<Policy PolicyId="policy1" ....>
....
....
</Policy>

在另一个策略中调用“policy1”:

<Policy PolicyId="MasterPolicy" ....>
<Description>Master Policy Set</Description>
<Target>
  ....
</Target>

<PolicyIdReference>policy1</PolicyIdReference>

</Policy>
于 2014-03-09T21:14:16.253 回答
1

除了Yusuf所说的,你还可以使用变量定义。变量定义是您可以在策略内部定义并且可以在规则条件内部重用的表达式。

有关更多详细信息,请参阅 XACML规范

于 2014-03-10T17:19:54.180 回答