Я сделал свой собственный MongoDBPolicyProvider и интегрировал его в сервер Authzforce, но я не могу запустить веб-приложение (docker image fiware / authzforce-ce-server, release-8.1.0) из-за этого исключения:
java.lang.RuntimeException: Invalid PDP configuration of domain 'YAT-5z9ZEemGyAJCrBEAAg' in file '/opt/authzforce-ce-server/data/domains/YAT-5z9ZEemGyAJCrBEAAg/pdp.xml': refPolicyProvider is not an instance of class org.ow2.authzforce.pap.dao.flatfile.xmlns.StaticFlatFileDAORefPolicyProvider as expected.
Я думаю, что каким-то образом он все еще пытается получить политики от StaticFlatFileDAORefPolicyProvider
поставщика политики.
- .jar расширения виден в classpath сервера.
- Вот мой файл конфигурации pdp:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<pdp
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://authzforce.github.io/core/xmlns/pdp/6.0"
xmlns:oa="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
version="6.0.0" enableXPath="false" strictAttributeIssuerMatch="false" maxVariableRefDepth="10" maxPolicyRefDepth="10">
<refPolicyProvider
id="refPolicyProvider"
xmlns:ext="PRP/mongoDB"
xsi:type="ext:MongoDBBasedPolicyProviderDescriptor"
serverHost="localhost" serverPort="27017" dbName="PRP" collectionName="policies" />
<rootPolicyProvider id="rootPolicyProvider" xsi:type="StaticRefBasedRootPolicyProvider">
<policyRef>root-rbac-policyset</policyRef>
</rootPolicyProvider>
</pdp>
- Это MongoDBBasedPolicyProviderDescriptor:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MongoDBBasedPolicyProviderDescriptor")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class MongoDBBasedPolicyProviderDescriptor extends AbstractPolicyProvider
{
@XmlAttribute(name = "serverHost", required = true)
protected String serverHost;
@XmlAttribute(name = "serverPort", required = true)
protected int serverPort;
@XmlAttribute(name = "dbName", required = true)
protected String dbName;
@XmlAttribute(name = "collectionName", required = true)
protected String collectionName;
}
Я выполнил процесс интеграции PRPдважды, но я пока не добился успеха.Буду признателен за любую помощь в этом направлении.