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: <br>
Archive - Identification of
Archive. <br>
Folder - Archive folder path
for folder where
items are filed in
MultiArchive. <br>
</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. <br> 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: <br> Archive -
Identification
of Archive. <br> Archive folder path.
<br>
</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.
<br>
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]