避免XACML中的代码重复

时间:2014-03-09 12:01:04

标签: xacml

描述

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

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

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

2 个答案:

答案 0 :(得分:2)

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

  1. 使用策略ID参考:在另一个策略/策略集中调用现有策略。
  2. 使用策略集ID引用:在另一个policySet内调用exisitng PolicySet
  3. 例如,下面是在另一个策略中调用现有策略的方法:

    要恢复的现有政策“policy1”:

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

    在另一项政策中调用“policy1”:

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

答案 1 :(得分:1)

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

有关详细信息,请参阅XACML specification