You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Torben Riis (JIRA)" <ji...@apache.org> on 2007/02/08 12:39:05 UTC

[jira] Created: (AXIS2-2139) Axis2: Security phase (Rampart) alters response

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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org