Axis2: Security phase (Rampart) alters response
-----------------------------------------------

                 Key: AXIS2-2139
                 URL: https://issues.apache.org/jira/browse/AXIS2-2139
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
    Affects Versions: 1.1.1
         Environment: Windows XP, Tomcat 5.5 & WebSphere 5.1
            Reporter: Torben Riis


I have registered a strange behaviour with Axis2 1.1.1 and rampart 1.1. It 
seams like rampart alters the soap body response.

Below are two soap response messages, taken with soapUI. One with Rampart 
enabled and one without. As you can see the elements in 
RetrieveFolderURIResponse isn't the same.

Response without Rampart
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv:Header/>
   <soapenv:Body>
      <ns2:RetrieveFolderURIResponse 
xmlns:ns2="http://www.multi-support.com/URIService/types";>
         <myUrl>www.mrtg.org</myUrl>
         <uri>www.google.com</uri>
         <some>mytest</some>
      </ns2:RetrieveFolderURIResponse>
   </soapenv:Body>
</soapenv:Envelope>

Response with rampart enabled
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv:Header/>
   <soapenv:Body>
      <ns2:RetrieveFolderURIResponse 
xmlns:ns2="http://www.multi-support.com/URIService/types";>
         <myUrl>www.mrtg.org</myUrl>
         <ns1:URI 
xmlns:ns1="http://www.multi-support.com/xsd/matypes";>www.google.com</ns1:URI>
         <ns2:MyTest>mytest</ns2:MyTest>
      </ns2:RetrieveFolderURIResponse>
   </soapenv:Body>
</soapenv:Envelope>


If we look at the definition in the wsdl, it looks like element types from 
RetrieveFolderURIResponse is used as element name
in the response when rampart is enabled. But only for types referring to simple 
and complex types.



URIService.wsdl
<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions name="URIService"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
        targetNamespace="http://www.multi-support.com/URIService/";
        xmlns:ma="http://www.multi-support.com/URIService/types";
        xmlns:mau="http://www.multi-support.com/URIService/";
        xmlns:mat="http://www.multi-support.com/xsd/matypes";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

        <wsdl:types>

                <xsd:schema
                        
targetNamespace="http://www.multi-support.com/URIService/types";
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

                        <xsd:import
                                
namespace="http://www.multi-support.com/xsd/matypes";
                                schemaLocation="maTypes.xsd" />

                        <xsd:simpleType name="MyTest">
                                <xsd:restriction 
base="xsd:string"></xsd:restriction>
                        </xsd:simpleType>

                        <xsd:element name="RetrieveFolderURIRequest"
                                nillable="false">
                                <xsd:annotation>
                                        <xsd:documentation>
                                                Input parameter is an element 
consisting of the
                                                following elements: &lt;br&gt;

                                                Archive - Identification of 
Archive. &lt;br&gt;
                                                Folder - Archive folder path 
for folder where
                                                items are filed in 
MultiArchive. &lt;br&gt;
                                        </xsd:documentation>
                                </xsd:annotation>
                                <xsd:complexType>
                                        <xsd:sequence minOccurs="1" 
maxOccurs="1">
                                                <xsd:element name="archive"
                                                        type="mat:ArchiveName" 
nillable="false" maxOccurs="1"
                                                        minOccurs="1">
                                                </xsd:element>
                                                <xsd:element name="folder"
                                                        
type="mat:FilingFolderPath" maxOccurs="1" minOccurs="1">
                                                </xsd:element>
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>

                        <xsd:element name="RetrieveFolderURIResponse">
                                <xsd:complexType>
                                        <xsd:sequence>
                                                <xsd:element name="myUrl" 
type="xsd:string" />
                                                <xsd:element name="uri" 
type="mat:URI"/>
                                                <xsd:element name="some" 
type="ma:MyTest"/>
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>

                        <xsd:element name="RetrieveFolderURIFault">
                                <xsd:annotation>
                                        <xsd:documentation>
                                                RetrieveFolderURIException is 
fault thrown when
                                                some error has occured during 
execution of web
                                                service. &lt;br&gt; Error code 
and message can
                                                be resolved from fault.
                                        </xsd:documentation>
                                </xsd:annotation>
                                <xsd:complexType>
                                        <xsd:sequence>
                                                <xsd:element name="reasonCode" 
type="xsd:int">
                                                        <xsd:annotation>
                                                                
<xsd:documentation>
                                                                        Error 
code, identifying type of
                                                                        error 
when generating a URI for an
                                                                        archive 
folder.
                                                                
</xsd:documentation>
                                                        </xsd:annotation>
                                                </xsd:element>
                                                <xsd:element name="description"
                                                        type="xsd:string">
                                                        <xsd:annotation>
                                                                
<xsd:documentation>
                                                                        
Description of the error code.
                                                                
</xsd:documentation>
                                                        </xsd:annotation>
                                                </xsd:element>
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>

                </xsd:schema>
        </wsdl:types>

        <wsdl:message name="RetrieveFolderURIResponse">
                <wsdl:documentation>
                        Output parameter is the generated uri for the 
MultiArchive
                        archive folder.
                </wsdl:documentation>
                <wsdl:part element="ma:RetrieveFolderURIResponse"
                        name="RetrieveFolderURIResponse">
                        <wsdl:documentation>
                                Element containing generated folder uri.
                        </wsdl:documentation>
                </wsdl:part>
        </wsdl:message>
        <wsdl:message name="RetrieveFolderURIRequest">
                <wsdl:documentation>
                        Input parameter is an element consisting of an element
                        containing archive and archive folder path.
                </wsdl:documentation>
                <wsdl:part element="ma:RetrieveFolderURIRequest"
                        name="RetrieveFolderURIRequest">
                        <wsdl:documentation>
                                Input parameter is an element consisting of the
                                following elements: &lt;br&gt; Archive - 
Identification
                                of Archive. &lt;br&gt; Archive folder path. 
&lt;br&gt;
                        </wsdl:documentation>
                </wsdl:part>
        </wsdl:message>

        <wsdl:message name="RetrieveFolderURIFault">
                <wsdl:documentation>
                        RetrieveFolderURIFault is returned when some error has
                        occurred during generation of folder uri.
                </wsdl:documentation>
                <wsdl:part name="RetrieveFolderURIFault"
                        element="ma:RetrieveFolderURIFault">
                        <wsdl:documentation>
                                RetrieveFolderURIFault is fault thrown when 
some error
                                has occurred during execution of web service. 
&lt;br&gt;
                                Error code and message can be resolved from 
fault.
                        </wsdl:documentation>
                </wsdl:part>
        </wsdl:message>

        <wsdl:portType name="URIService">
                <wsdl:documentation>
                        SOAP Web Service for generation of URI's for specific
                        MultiArchive components.
                </wsdl:documentation>
                <wsdl:operation name="retrieveFolderURI">
                        <wsdl:documentation>
                                The invocation of retrieveFolderURI generates 
given
                                archive folder path, a URI which can be used to 
invoke
                                that that folder in MultiArchive.
                        </wsdl:documentation>
                        <wsdl:input message="mau:RetrieveFolderURIRequest">
                                <wsdl:documentation></wsdl:documentation>
                        </wsdl:input>
                        <wsdl:output message="mau:RetrieveFolderURIResponse" />
                        <wsdl:fault name="RetrieveFolderURIFault"
                                message="mau:RetrieveFolderURIFault">
                        </wsdl:fault>
                </wsdl:operation>
        </wsdl:portType>

        <wsdl:binding name="URIServiceSOAP" type="mau:URIService">
                <wsdl:documentation>
                        SOAP binding for the MultiArchive Component URI 
generation
                        service.
                </wsdl:documentation>
                <soap:binding style="document"
                        transport="http://schemas.xmlsoap.org/soap/http"; />

                <wsdl:operation name="retrieveFolderURI">
                        <wsdl:documentation>
                                Use retrieveFolderURI to generate a uri, which 
can be
                                used for accessing a specific archive folder in
                                MultiArchive.
                        </wsdl:documentation>
                        <soap:operation soapAction="retrieveFolderURI" />
                        <wsdl:input>
                                <soap:body use="literal" />
                        </wsdl:input>
                        <wsdl:output>
                                <soap:body use="literal" />
                        </wsdl:output>
                        <wsdl:fault name="RetrieveFolderURIFault">
                                <soap:fault name="RetrieveFolderURIFault" 
use="literal" />
                        </wsdl:fault>
                </wsdl:operation>
        </wsdl:binding>

        <wsdl:service name="URIService">
                <wsdl:documentation>
                        SOAP Web Service for generation of URI's for specific
                        MultiArchive Component.
                </wsdl:documentation>
                <wsdl:port binding="mau:URIServiceSOAP" name="URIServicePort">
                        <wsdl:documentation>
                                SOAP Web Service for generation of URI's for 
specific
                                MultiArchive Component.
                        </wsdl:documentation>
                        <soap:address
                                
location="http://www.multi-support.com/multiarchive/services"; />
                </wsdl:port>
        </wsdl:service>
</wsdl:definitions>



maTypes.xsd
<?xml version="1.0" encoding="UTF-8"?>
<!-- Change Log -->
<!-- 24.10.2006 Multi-Support R&D A/S XSD Developed. -->
 
<xsd:schema targetNamespace="http://www.multi-support.com/xsd/matypes";
        elementFormDefault="qualified" version="1.0"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns:mat="http://www.multi-support.com/xsd/matypes";>

    <xsd:annotation>
        <xsd:documentation>This Schema contains definitions for common types 
used by MultiArchive Web Services.</xsd:documentation>
    </xsd:annotation>
    
    <xsd:simpleType name="ArchiveName">
                <xsd:annotation>
                        <xsd:documentation>
                                Identification of an archive in MultiArchive.
                        </xsd:documentation>
                </xsd:annotation>
                <xsd:restriction base="xsd:string">
                        <xsd:minLength value="1"></xsd:minLength>
                        <xsd:maxLength value="5"></xsd:maxLength>
                </xsd:restriction>
        </xsd:simpleType>

        <xsd:simpleType name="FilingFolderPath">
                <xsd:annotation>
                        <xsd:documentation>
                                Folder path for MultiArchive filing. 
                        </xsd:documentation>
                </xsd:annotation>
                <xsd:restriction base="xsd:string">
                        <xsd:minLength value="1"></xsd:minLength>
                </xsd:restriction>
        </xsd:simpleType>

        <xsd:simpleType name="URI">
                <xsd:annotation>
                        <xsd:documentation>
                                URI for MultiArchive Component.
                        </xsd:documentation>
                </xsd:annotation>
                <xsd:restriction base="xsd:string"></xsd:restriction>
        </xsd:simpleType>
</xsd:schema>



services.xml
<!-- This file was auto-generated from WSDL -->
<!-- by the Apache Axis2 version: #axisVersion# #today# -->
<serviceGroup>
        <service name="URIService">
                <messageReceivers>
                        <messageReceiver 
mep="http://www.w3.org/2004/08/wsdl/in-out";
                                
class="com.multisupport.maservices.uriservice.URIServiceMessageReceiverInOut" />
                </messageReceivers>
                <parameter locked="false" name="ServiceClass">
                        
com.multisupport.maservices.uriservice.URIServiceSkeleton
                </parameter>
                <operation name="retrieveFolderURI"
                        mep="http://www.w3.org/2004/08/wsdl/in-out";>
                        <actionMapping>retrieveFolderURI</actionMapping>
                        <outputActionMapping>
                                
http://www.multi-support.com/URIService/URIService/retrieveFolderURIResponse
                        </outputActionMapping>
                        <faultActionMapping faultName="RetrieveFolderURIFault">
                                
http://www.multi-support.com/URIService/URIService/retrieveFolderURI/Fault/RetrieveFolderURIFault
                        </faultActionMapping>
                </operation>

                <module ref="rampart" />
        
                <parameter name="InflowSecurity">
                <action>
                        <items>UsernameToken</items>
                                
<passwordCallbackClass>com.multisupport.maservices.PWCBHandler</passwordCallbackClass>
                </action>               
                </parameter> 
        </service>
</serviceGroup>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to