描述
我创建了多个 XACML 文件,其中包含根据first-applicable
规则组合算法评估的多个策略。
有时我无法避免 XACML 中的代码重复,我必须在 XACML 文件的多个位置复制某个 XACML 策略。
<import file="xacml/deny-policy.xacml"/>
是否可以通过xml 或其他方式避免 XACML 中的代码重复?
描述
我创建了多个 XACML 文件,其中包含根据first-applicable
规则组合算法评估的多个策略。
有时我无法避免 XACML 中的代码重复,我必须在 XACML 文件的多个位置复制某个 XACML 策略。
<import file="xacml/deny-policy.xacml"/>
是否可以通过xml 或其他方式避免 XACML 中的代码重复?
实际上,已经有办法在另一个策略中引用已经存在的策略以实现可重用性。您可以使用以下两种方式之一:
例如,下面是在另一个策略中调用现有策略的方法:
<Policy PolicyId="policy1" ....>
....
....
</Policy>
<Policy PolicyId="MasterPolicy" ....>
<Description>Master Policy Set</Description>
<Target>
....
</Target>
<PolicyIdReference>policy1</PolicyIdReference>
</Policy>
除了Yusuf所说的,你还可以使用变量定义。变量定义是您可以在策略内部定义并且可以在规则条件内部重用的表达式。
有关更多详细信息,请参阅 XACML规范。