<service>
    <module ref="rampart"/>
    <parameter name="ServiceClass" 
          locked="false">org.wso2.training.rampart.SimpleService</parameter>
          
    <operation name="secureEcho">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </operation>        
    
    <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
      <wsp:AppliesTo>
        <policy-subject identifier="binding:soap11" />
        <policy-subject identifier="binding:soap12" />
      </wsp:AppliesTo>
        <wsp:Policy wsu:Id="binding_level_policy"
        			xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">  
            <wsp:ExactlyOne>
                <wsp:All>
			            <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
			                <wsp:Policy>
			                    <sp:InitiatorToken>
			                        <wsp:Policy>
			                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
			                                <wsp:Policy>
			                                    <sp:WssX509V3Token10/>
			                                </wsp:Policy>
			                            </sp:X509Token>
			                        </wsp:Policy>
			                    </sp:InitiatorToken>
			                    <sp:RecipientToken>
			                        <wsp:Policy>
			                            <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
			                                <wsp:Policy>
			                                    <sp:WssX509V3Token10/>
			                                </wsp:Policy>
			                            </sp:X509Token>
			                        </wsp:Policy>
			                    </sp:RecipientToken>
			                    <sp:AlgorithmSuite>
			                        <wsp:Policy>
			                            <sp:TripleDesRsa15/>
			                        </wsp:Policy>
			                    </sp:AlgorithmSuite>
			                    <sp:Layout>
			                        <wsp:Policy>
			                            <sp:Strict/>
			                        </wsp:Policy>
			                    </sp:Layout>
			                    <sp:IncludeTimestamp/>
			                    <sp:OnlySignEntireHeadersAndBody/>
			                </wsp:Policy>
			            </sp:AsymmetricBinding>
			            <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
			                <wsp:Policy>
			                    <sp:MustSupportRefKeyIdentifier/>
			                    <sp:MustSupportRefIssuerSerial/>
			                </wsp:Policy>
			            </sp:Wss10>
                        <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> 
                                <ramp:user>service</ramp:user>
                                <ramp:encryptionUser>useReqSigCert</ramp:encryptionUser>
                                <ramp:passwordCallbackClass>org.wso2.training.rampart.service.PWCBHandler</ramp:passwordCallbackClass>
                                <ramp:signatureCrypto>
                                        <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
                                                <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
                                                <ramp:property name="org.apache.ws.security.crypto.merlin.file">service.jks</ramp:property>
                                                <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">training</ramp:property>
                                        </ramp:crypto>
                                </ramp:signatureCrypto>
                                <ramp:encryptionCypto>
										<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
											<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
											<ramp:property name="org.apache.ws.security.crypto.merlin.file">service.jks</ramp:property>
											<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">training</ramp:property>
										</ramp:crypto>
								</ramp:encryptionCypto>
                        </ramp:RampartConfig>
                    </wsp:All>
            </wsp:ExactlyOne>
    	</wsp:Policy>   
    </wsp:PolicyAttachment>
    <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
      <wsp:AppliesTo>
        <policy-subject identifier="binding:soap11/operation:secureEcho" />
        <policy-subject identifier="binding:soap12/operation:secureEcho" />
      </wsp:AppliesTo>
      	<wsp:Policy wsu:Id="operation_level_policy"
        			xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsp:ExactlyOne>
                <wsp:All> 
					<sp:SignedSupportingTokens
						xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
						<wsp:Policy>
							<sp:UsernameToken
								sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
						</wsp:Policy>
					</sp:SignedSupportingTokens>
                </wsp:All>
            </wsp:ExactlyOne>
    	</wsp:Policy>   
    </wsp:PolicyAttachment>
    <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
      <wsp:AppliesTo>
        <policy-subject identifier="binding:soap11/operation:secureEcho/in" />
        <policy-subject identifier="binding:soap12/operation:secureEcho/in" />
      </wsp:AppliesTo>
      	<wsp:Policy wsu:Id="message_level_policy"
        			xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsp:ExactlyOne>
                <wsp:All> 
                	<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
			        	<sp:Body/>
			        </sp:EncryptedParts>
                </wsp:All>
            </wsp:ExactlyOne>
    	</wsp:Policy>   
    </wsp:PolicyAttachment>
    
</service>
