<module name="rampart" class="org.apache.rampart.Rampart">

    <Description>This module provides the WS-Security and WS-SecureConversation 
    functionalities for Axis2, based on Apache WSS4J, Apache XML-Security 
    and Apache Rahas implementations.
	</Description>
	    
    <InFlow>
        <handler name="PolicyBasedSecurityInHandler" class="org.apache.rampart.handler.RampartReceiver">
            <order phase="Security" phaseFirst="true"/>
        </handler>
        <handler name="SecurityInHandler" class="org.apache.rampart.handler.WSDoAllReceiver">
            <order phase="Security"/>
        </handler>
        <handler name="PostDispatchVerificationHandler" class="org.apache.rampart.handler.PostDispatchVerificationHandler">
            <order phase="Dispatch" phaseLast="true"/>
        </handler>
        
    </InFlow>

    <OutFlow>
        <handler name="SecurityOutHandler" class="org.apache.rampart.handler.WSDoAllSender">
            <order phase="Security"/>
        </handler>
        <handler name="PolicyBasedSecurityOutHandler" class="org.apache.rampart.handler.RampartSender">
            <order phase="Security" phaseLast="true"/>
        </handler>
    </OutFlow>
    
    <OutFaultFlow>
        <handler name="PolicyBasedSecurityOutHandler" class="org.apache.rampart.handler.RampartSender">
            <order phase="Security" phaseLast="true"/>
        </handler>
    </OutFaultFlow>

    <InFaultFlow>
        <handler name="PolicyBasedSecurityInHandler" class="org.apache.rampart.handler.RampartReceiver">
            <order phase="Security" phaseFirst="true"/>
        </handler>
    </InFaultFlow>
    
    <supported-policy-namespaces namespaces="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"/>
    <local-policy-assertions>
    	<rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy" />
    </local-policy-assertions>
</module>
