<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~  Licensed to the Apache Software Foundation (ASF) under one
  ~  or more contributor license agreements.  See the NOTICE file
  ~  distributed with this work for additional information
  ~  regarding copyright ownership.  The ASF licenses this file
  ~  to you under the Apache License, Version 2.0 (the
  ~  "License"); you may not use this file except in compliance
  ~  with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~  Unless required by applicable law or agreed to in writing,
  ~  software distributed under the License is distributed on an
  ~   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~  KIND, either express or implied.  See the License for the
  ~  specific language governing permissions and limitations
  ~  under the License.
  -->

<!-- Callout  mediator Security Sample for different policies for inbound and outbound-->
<definitions xmlns="http://ws.apache.org/ns/synapse">

    <localEntry key="sec_policy_inbound" src="file:repository/conf/sample/resources/policy/policy_3.xml"/>
    <localEntry key="sec_policy_outbound" src="file:repository/conf/sample/resources/policy/policy_3.xml"/>

    <sequence name="main">
        <callout serviceURL="http://localhost:9000/services/SecureStockQuoteService"
                 action="urn:getQuote">
            <source xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"
                    xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
                    xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/>
            <target xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"
                    xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
                    xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/>
            <enableSec outboundPolicy="sec_policy_outbound" inboundPolicy="sec_policy_inbound"/>
        </callout>
	<respond/>
    </sequence>

</definitions>
