To answer your question on the action attribute, It is a optional part of
the Content-Type header (When SOAP 1.2 is used which is your case) which
gives a hint to the server to dispatch the request. If you had used SOAP 1.1
it would have been a separate HTTP header called soapaction (Which is
mandatory in SOAP 1.1).

Thanks,
Keith.

On Wed, Oct 21, 2009 at 9:24 AM, Jaime Hablutzel Egoavil <
hablutz...@gmail.com> wrote:

> I'm using wso2 for axis2 spring support:
>
> pom.xml (extract)
>
>    <dependency>
>             <groupId>org.apache.rampart</groupId>
>             <artifactId>rampart-core</artifactId>
>             <version>1.4</version>
>         </dependency>
>
>
>         <dependency>
>             <groupId>org.apache.axis2</groupId>
>             <artifactId>axis2-kernel</artifactId>
>             <version>1.4.1</version>
>         </dependency>
>
>         <dependency>
>             <groupId>org.wso2.spring.ws</groupId>
>             <artifactId>wsf-spring</artifactId>
>             <version>1.5</version>
>         </dependency>
>
> applicationContext.xml
>
>     <!--  creamos un bean para la clase  segura -->
>     <bean id="emrauthws" class="pe.gob.hndac.ws.EmrServiceAuthImpl" />
>
>     <bean id="emrAuthService" class="org.wso2.spring.ws.SpringWebService">
>                     <property name="serviceBean"
> ref="emrauthws"></property>
>                     <property name="serviceName"
> value="emrAuthWs"></property>
>                     <property name="serviceDescription"
>                         value="Provee de metodos para acceder a informacion
> detallada."></property>
>                     <property name="modules">
>                         <list>
>                             <value>rampart</value>
>                         </list>
>                     </property>
>                     <property name="policyFiles">
>                         <list>
>                             <!--     <value>policyNoSSL.xml</value> -->
>                             <value>policy.xml</value>
>                         </list>
>                     </property>
>                     <!--
>                         Si incluimos un metodo que no le pertenece al bean
> que se expondra
>                         este se muestra en el wsdl <property
> name="operations"> <list>
>                         <ref local="operation" /> </list> </property>
>                     -->
>                 </bean>
>
>             </list>
>         </property>
>     </bean>
>
>
> policy.xml
>
>
> <wsp:Policy wsu:Id="UsernameTokenOverHTTPS"
>     xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
>     xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";>
>     <wsp:ExactlyOne>
>         <wsp:All>
>             <sp:TransportBinding
>                 xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
>                 <wsp:Policy>
>                     <sp:TransportToken>
>                         <wsp:Policy>
>                             <sp:HttpsToken RequireClientCertificate="false"
> />
>                         </wsp:Policy>
>                     </sp:TransportToken>
>                     <sp:AlgorithmSuite>
>                         <wsp:Policy>
>                             <sp:Basic256 />
>                         </wsp:Policy>
>                     </sp:AlgorithmSuite>
>                     <sp:Layout>
>                         <wsp:Policy>
>                             <sp:Lax />
>                         </wsp:Policy>
>                     </sp:Layout>
>                     <sp:IncludeTimestamp />
>                 </wsp:Policy>
>             </sp:TransportBinding>
>             <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>
>             <ramp:RampartConfig xmlns:ramp="
> http://ws.apache.org/rampart/policy";>
>
> <ramp:passwordCallbackClass>pe.gob.hndac.ldap.PasswordCallbackHandler</ramp:passwordCallbackClass>
>             </ramp:RampartConfig>
>         </wsp:All>
>     </wsp:ExactlyOne>
> </wsp:Policy>
>
>
> with rampart-1.3.mar in the classpath, after all, what is content-type
> action attribute for?
>
>
> On Wed, Oct 21, 2009 at 1:33 AM, Amila Suriarachchi <
> amilasuriarach...@gmail.com> wrote:
>
>> what is the axis2 version you use?
>>
>> thanks,
>> Amila.
>>
>>
>> On Tue, Oct 20, 2009 at 7:10 PM, Jaime Hablutzel Egoavil <
>> hablutz...@gmail.com> wrote:
>>
>>> Hi, I'm a newbie in web services and security, I'm using wso2 as an axis2
>>> wrapper for making working with Spring easier, well
>>>
>>> I have published a service that requires user token authentication and
>>> SSL transport using this policy:
>>>
>>> <wsp:Policy wsu:Id="UsernameTokenOverHTTPS"
>>>     xmlns:wsu="
>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
>>> "
>>>     xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";>
>>>     <wsp:ExactlyOne>
>>>         <wsp:All>
>>>             <sp:TransportBinding
>>>                 xmlns:sp="
>>> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
>>>                 <wsp:Policy>
>>>                     <sp:TransportToken>
>>>                         <wsp:Policy>
>>>                             <sp:HttpsToken
>>> RequireClientCertificate="false" />
>>>                         </wsp:Policy>
>>>                     </sp:TransportToken>
>>>                     <sp:AlgorithmSuite>
>>>                         <wsp:Policy>
>>>                             <sp:Basic256 />
>>>                         </wsp:Policy>
>>>                     </sp:AlgorithmSuite>
>>>                     <sp:Layout>
>>>                         <wsp:Policy>
>>>                             <sp:Lax />
>>>                         </wsp:Policy>
>>>                     </sp:Layout>
>>>                     <sp:IncludeTimestamp />
>>>                 </wsp:Policy>
>>>             </sp:TransportBinding>
>>>             <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>
>>>             <ramp:RampartConfig xmlns:ramp="
>>> http://ws.apache.org/rampart/policy";>
>>>
>>> <ramp:passwordCallbackClass>pe.gob.hndac.ldap.PasswordCallbackHandler</ramp:passwordCallbackClass>
>>>             </ramp:RampartConfig>
>>>         </wsp:All>
>>>     </wsp:ExactlyOne>
>>> </wsp:Policy>
>>>
>>> If i send this request (sniffed with TCPmon)
>>>
>>> POST
>>> http://172.17.0.24:8080/emrws/services/emrAuthWs.emrAuthWsHttpSoap12Endpoint/HTTP/1.1
>>> User-Agent: Axis2C/1.5.0
>>> Content-Type: application/soap+xml;charset=UTF-8
>>> ;action="urn:getPatientDetails"
>>> Host: 172.17.0.24:8080
>>> Content-Length: 310
>>>
>>> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
>>> xmlns:ws="http://ws.hndac.gob.pe";>
>>>    <soap:Header/>
>>>    <soap:Body>
>>>       <ws:getPatientDetails>
>>>          <!--Optional:-->
>>>          <ws:identificador>12</ws:identificador>
>>>       </ws:getPatientDetails>
>>>    </soap:Body>
>>> </soap:Envelope>
>>>
>>> I receive this answer:
>>>
>>> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope
>>> ">
>>>    <soapenv:Body>
>>>       <soapenv:Fault xmlns:axis2ns19="
>>> http://www.w3.org/2003/05/soap-envelope";>
>>>          <soapenv:Code>
>>>             <soapenv:Value>axis2ns19:Sender</soapenv:Value>
>>>             <soapenv:Subcode>
>>>                <soapenv:Value xmlns:wsse="
>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>>> ">wsse:InvalidSecurity</soapenv:Value>
>>>             </soapenv:Subcode>
>>>          </soapenv:Code>
>>>          <soapenv:Reason>
>>>             <soapenv:Text xml:lang="en-US">Missing wsse:Security header
>>> in request</soapenv:Text>
>>>          </soapenv:Reason>
>>>          <soapenv:Detail/>
>>>       </soapenv:Fault>
>>>    </soapenv:Body>
>>> </soapenv:Envelope>
>>>
>>>
>>> Ok, this is an axis fault, it is ok, but if I send:
>>>
>>> POST
>>> http://172.17.0.24:8080/emrws/services/emrAuthWs.emrAuthWsHttpSoap12Endpoint/HTTP/1.1
>>> User-Agent: Axis2C/1.5.0
>>> Content-Length: 294
>>> Content-Type: application/soap+xml;charset=UTF-8
>>> Host: 172.17.0.24:8080
>>>
>>> <soapenv:Envelope 
>>> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope";><soapenv:Header/><soapenv:Body><ws:getPatientDetails
>>> xmlns:ws="http://ws.hndac.gob.pe";>
>>>          <!--Optional:-->
>>>          <ws:identificador>12</ws:identificador>
>>> </ws:getPatientDetails></soapenv:Body></soapenv:Envelope>
>>>
>>> Note the missing action attribute in the http content-type header, I
>>> receive this answer:
>>>
>>> HTTP/1.1 200 OK
>>> Server: Apache-Coyote/1.1
>>> Content-Type: application/soap+xml;
>>> action="urn:getPatientDetailsResponse";charset=UTF-8
>>> Transfer-Encoding: chunked
>>> Date: Tue, 20 Oct 2009 13:30:41 GMT
>>>
>>> 641
>>> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="
>>> http://www.w3.org/2003/05/soap-envelope";><soapenv:Header>
>>> <wsse:Security xmlns:wsse="
>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
>>> soapenv:mustUnderstand="true"><wsu:Timestamp xmlns:wsu="
>>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
>>> wsu:Id="Timestamp-16078681"><wsu:Created>2009-10-20T13:30:41.184Z</wsu:Created><wsu:Expires>2009-10-20T13:35:41.184Z</wsu:Expires></wsu:Timestamp></wsse:Security></soapenv:Header><soapenv:Body><ns:getPatientDetailsResponse
>>> xmlns:ns="http://ws.hndac.gob.pe";><ns:return xmlns:ax23="
>>> http://model/xsd";
>>> type="model.Paciente"><ax23:apellidoMaterno>ALFARO</ax23:apellidoMaterno><ax23:apellidoPaterno>SAENZ</ax23:apellidoPaterno><ax23:direccion
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /><ax23:documentoIdentidad xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /><ax23:fechaAdmision xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /><ax23:fechaNacimiento>1957-08-16T05:00:00.000Z</ax23:fechaNacimiento><ax23:identificador>12</ax23:identificador><ax23:nombres>CARMEN
>>> ROSA</ax23:nombres><ax23:sexo>F</ax23:sexo><ax23:telefono xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /><ax23:ubigeoNacimiento xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /><ax23:ubigeoResidencia xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:nil="true"
>>> /></ns:return></ns:getPatientDetailsResponse></soapenv:Body></soapenv:Envelope>
>>> 0
>>>
>>>
>>> Auchh, without user authentication neither SSL transport :S
>>>
>>> --
>>> Jaime Hablutzel
>>>
>>> (tildes omitidas intencionalmente) 9 8964 0369
>>>
>>
>>
>>
>> --
>> Amila Suriarachchi
>> WSO2 Inc.
>> blog: http://amilachinthaka.blogspot.com/
>>
>
>
>
> --
> Jaime Hablutzel
>
> (tildes omitidas intencionalmente) 9 8964 0369
>



-- 
Thanks,
Keith.

Keith Chapman
blog: http://www.keith-chapman.org

Reply via email to