Как получить ресурс:root-resource-id в SampleResourceFinderModule из запроса
У меня есть сценарий, в котором я отправляю ресурс: 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>`
Теперь мне нужно получить доступ к ресурсу: root-resource-id в SampleResourceFinderModule, как если бы я получил доступ к ресурсу: resource-id:
if("Customer".equals(parentResourceId.encode())){}
Можете ли вы сказать мне, как я могу это сделать?
1 ответ
Я не уверен, что именно вы пытаетесь сделать, и каков ваш точный вопрос. Я предполагаю, что вы пытаетесь иерархический профиль ресурса с WSO2IS, который упоминается здесь. Похоже, что вы написали новое расширение, реализовав "PIPResourceFinder". Идея этого расширения состоит в том, чтобы получить ресурсы потомков или потомков под данным корневым ресурсом. Поэтому в запросе XACML необходимо отправить корневой ресурс и область (дочерние или потомки).
Затем корневой ресурс идентифицируется идентификатором атрибута "urn:oasis:names:tc:xacml:1.0:resource:resource-id". (а не "urn:oasis:names:tc:xacml:1.0:resource:root-resource-id" id атрибута.. Я предполагаю, что сообщение в блоге имеет какую-то ошибку. Согласно сценарию в сообщении в блоге, возможно, потребуется отправить корневой ресурс с другим идентификатором атрибута).
Область действия определяется идентификатором атрибута "urn:oasis:names:tc:xacml:2.0:resource:scope".
Наконец, вы можете получить доступ к корневому ресурсу в искателе "PIPResourceFinder". Затем вы можете вернуть дочерние ресурсы, связанные с корневым ресурсом. Вы можете просмотреть пример реализации, упомянутый в этом блоге.