0

我有一个场景,我正在从请求中发送资源:root-resource-id,如下所示

<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
    <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" IncludeInResult="true">
        <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
            Customer
        </AttributeValue>
    </Attribute>
    <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:root-resource-id" IncludeInResult="true">
        <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
            Customer
        </AttributeValue>
    </Attribute>
    <Attribute AttributeId="urn:oasis:names:tc:xacml:2.0:resource:scope" IncludeInResult="false">
        <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
            Descendants
        </AttributeValue>
    </Attribute>
</Attributes>`

现在,我必须在 SampleResourceFinderModule 中访问 resource:root-resource-id ,就像我访问 resource:resource-id 一样:

if("Customer".equals(parentResourceId.encode())){}

你能告诉我我该怎么做吗?

4

1 回答 1

0

我不确定您到底要做什么以及您的确切问题是什么。我猜您正在尝试使用此处提到的 WSO2IS 的分层资源配置文件。您似乎通过实现“PIPResourceFinder”编写了新的扩展。此扩展的想法是检索给定根资源下的子资源或后代资源。因此,在 XACML 请求中,您需要发送根资源和范围(子代或后代)。

然后根资源由“urn:oasis:names:tc:xacml:1.0:resource:resource-id”属性id标识。(不是“urn:oasis:names:tc:xacml:1.0:resource:root-resource-id”属性id..我猜文有错误。根据博文中的场景,可能需要发送具有不同属性 id 的根资源)。

范围由“urn:oasis:names:tc:xacml:2.0:resource:scope”属性 ID 标识。

最后,您可以在“PIPResourceFinder”查找器中访问根资源。然后您可以返回与根资源相关的子资源。您可以浏览博客中提到的示例实现。

于 2014-02-04T16:09:03.197 回答