Daniele Cervi
Daniele Cervi

Reputation: 75

Mulesoft Custom Policy Transform Extension

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

Answers (2)

Yannick Geerts
Yannick Geerts

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

user3926170
user3926170

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

Related Questions