Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何将XACML规则应用于每个子URI?_Xml_Soa_Xacml_Xacml2 - Fatal编程技术网

Xml 如何将XACML规则应用于每个子URI?

Xml 如何将XACML规则应用于每个子URI?,xml,soa,xacml,xacml2,Xml,Soa,Xacml,Xacml2,我正在使用XACML策略,我有一个规则,其中包括一个类似于以下内容的资源目标: <Resources> <Resource> <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#an

我正在使用XACML策略,我有一个规则,其中包括一个类似于以下内容的资源目标:

    <Resources>
      <Resource>
        <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal">
          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">/MyDirectory</AttributeValue>
          <ResourceAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="http://www.w3.org/2001/XMLSchema#anyURI"/>
        </ResourceMatch>
      </Resource>
    </Resources>

/我的目录
我希望此规则适用于
/Mydirectory
的所有子目录。但是,如果我使用资源
/MyDirectory/MySubdirectory
评估请求,我将得到
决策不适用(3
)响应


是否有一个XQuery函数允许我将规则应用于单个目录的所有子目录?

您可以使用urn:oasis:names:tc:xacml:2.0:function:anyURI regexp match并将AttributeValue定义为正则表达式

<Resources>
      <Resource>
        <ResourceMatch MatchId="urn:oasis:names:tc:xacml:2.0:function:anyURI-regexp-match">
          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">^/MyDirectory/</AttributeValue>
          <ResourceAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="http://www.w3.org/2001/XMLSchema#anyURI"/>
        </ResourceMatch>
      </Resource>
</Resources>

^/我的目录/