Reputation: 75
I'm developing a custom validator policy for mulesoft runtime 4.1.0, and i need to modify the response when the policy isn't satisfied. To do this, i found this page on the mulesoft docs: https://docs.mulesoft.com/api-manager/v/2.x/http-policy-transform but when i try to use the xml namespace http-transform: i always get the error
Error loading: /opt/mule/mule-4.1.2/policies/jwtvalidatorpolicy-315114/policy.xml, Can't resolve http://www.mulesoft.org/schema/mule/http-transform/current/mule-http-transform.xsd, A dependency or plugin might be missing
Can someone provide the correct location/namespace?
Thank you!
Upvotes: 0
Views: 3045
Reputation: 1
For those that also run into this issue of missing dependency:
This is an enterprise-only plugin. This means that you need to configure your maven settings file to also search in the mulesoft enterprise repo. See https://docs.mulesoft.com/mule-runtime/3.9/configuring-maven-to-work-with-mule-esb for documentation how to do that. If you don't have a username/password for this repo yet, create a support ticket with an account linked to your enterprise subscription and they will provide you with the correct credentials.
Upvotes: 0
Reputation: 11
here it is a full example that uses the mentioned extension
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http-policy="http://www.mulesoft.org/schema/mule/http-policy"
xmlns:http-transform="http://www.mulesoft.org/schema/mule/http-policy-transform"
xmlns="http://www.mulesoft.org/schema/mule/core"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http-policy-transform http://www.mulesoft.org/schema/mule/http-policy-transform/current/mule-http-policy-transform.xsd
http://www.mulesoft.org/schema/mule/http-policy http://www.mulesoft.org/schema/mule/http-policy/current/mule-http-policy.xsd">
<http-policy:proxy name="policy-deployment">
<http-policy:source>
<try>
<http-policy:execute-next/>
<http-transform:add-headers outputType="response">
<http-transform:headers>#[{'policyHeader': 'policyHeaderValue'}]</http-transform:headers>
</http-transform:add-headers>
</try>
</http-policy:source>
</http-policy:proxy>
</mule>
You will also need to add the following dependency to your custom policy project
<dependency>
<groupId>com.mulesoft.anypoint</groupId>
<artifactId>mule-http-policy-transform-extension</artifactId>
<version>1.1.0</version>
<classifier>mule-plugin</classifier>
</dependency>
Upvotes: 1