Cross Origin Resource Sharing in Mule | CORS in Mule
CORS (Cross-Origin Resource Sharing) is a mechanism by which data or any other resource of a domain could be shared to another domain when there is a need. Generally, access to resources that are residing in a third party site is restricted by the browser clients for security purposes.
flow of enabling CORS in Mule :
For accessing API in another domain we need to enable some properties in response headers :
Sr.No
|
Key
|
Value
|
1
|
Access-Control-Allow-Origin
|
*
|
2
|
Access-Control-Allow-Methods
|
*
|
3
|
Access-Control-Allow-Headers
|
*
|
Method : OPTIONS or GET
Output :
You can see 3 above headers included in response headers.
XML project code :
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:cors="http://www.mulesoft.org/schema/mule/cors" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/cors http://www.mulesoft.org/schema/mule/cors/current/mule-cors.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
<flow name="test_corsvalidateFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/corsvalidate" doc:name="HTTP" />
<set-property propertyName="Access-Control-Allow-Origin" value="*" doc:name="Property"/>
<set-property propertyName="Access-Control-Allow-Methods" value="*" doc:name="Property"/>
<set-property propertyName="Access-Control-Allow-Headers" value="*" doc:name="Property"/>
<set-payload value="Welcome to CORS.........." doc:name="Set Payload"/>
</flow>
</mule>
No comments:
Post a Comment