Xml 如何将XACML规则应用于每个子URI?
我正在使用XACML策略,我有一个规则,其中包括一个类似于以下内容的资源目标: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
<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>
^/我的目录/