[Users] Comment invoke un web service avec des WS-Security

cippit_b [via Petals ESB] ml-node+3085453-931133972-385891 at n3.nabble.com
Mon Jun 20 11:12:03 CEST 2011



Je vais détailler un peu plus : 

J'avais lu que pour utiliser des webservices securisé,
il y avait des modifications à faire dans le partnerLink pour qu'il sache
créer les headers.
Normalement ajouter les propriétés comme dans le lien ci dessous aurait du
suffire :
http://download.oracle.com/docs/cd/E12483_01/integrate.1013/b28982/security.htm#CGAHADBE
http://download.oracle.com/docs/cd/E12483_01/integrate.1013/b28982/security.htm#CGAHADBE 
pour définir mon partnerLink, j'ai dans un premier temps, utilisé le lien
précédent et ça ne fonctionnait pas..

Ensuite,
j'ai tester de créer avec JDevelopper un PL avec des propriétés WS-Security,
il à généré les mêmes propriétés qu'indiquées sur le lien sauf qu'il y à des
paramètres en plus ( type xs:string, many=false )
je me retrouve donc avec :

mon partnerLink :


>         <ns2:partnerLink name="PL_Webcli" partnerLinkType="ns1:PL_Webcli"
> partnerRole="PL_WebcliMyRole">
>             <property name="wsseOASIS2004Compliant">true</property>
>             <property name="wsseHeaders" type="xs:string"
>                       many="false" >credentials</property>
>             <property name="wsseUsername" type="xs:string"
>                       many="false" >USERNAME</property>
>             <property name="wssrPassword" type="xs:string"
>                       many="false">PASSWORD</property>
>        </ns2:partnerLink>
> 


Et une séquence qui fait :


>     <ns2:sequence name="MainSequence">
> 
>     <ns2:receive name="Receive" partnerLink="mainPartner"
> operation="majCoordonnees"
>      variable="majCoordonneesVarRequest"></ns2:receive>
> 
>     <ns2:invoke name="Invoke"
>        partnerLink="PL_Webcli" operation="majCoordonnees"
>        portType="ns:ClientWSService" inputVariable="PL_WebcliRequest10"
>        outputVariable="PL_WebcliResponse10">
>     </ns2:invoke>
> 
>         <ns2:reply name="Reply" partnerLink="mainPartner"
> operation="majCoordonnees"
> variable="majCoordonneesResponseVarResponse"></ns2:reply>
>     </ns2:sequence>
> 


La requête envoyé au server (récupérée avec Wireshark) :



> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>    <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
>       <wsa:To>http://SRVER/ws/client</wsa:To>
>      
> <wsa:MessageID>urn:uuid:55429BE122E0DAD91308559245356</wsa:MessageID>
>       <wsa:Action>urn:majCoordonneesResponse</wsa:Action>
>    </soapenv:Header>
>    <soapenv:Body>
>       <tns:majCoordonnees xsi:type="tns:majCoordonnees"
> xmlns:tns="http://ws.webcli.norauto.com/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
>    </soapenv:Body>
> </soapenv:Envelope>
> 

Comme on le vois, rien dans le header, 
et petite subtilités aucune trace de ma variable d'input non plus..

Et la réponse je la link en entier, mais c'est 'juste' une erreur de
WS-Security

La réponse :



> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>    <soapenv:Body>
>       <soapenv:Fault>
>          <faultcode
> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">S:Server</faultcode>
>          <faultstring>Element
> {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
> not found</faultstring>
>          <detail>
>             <ns2:exception
> class="com.norauto.webcli.wsse.WSSecurityException" note="To disable this
> feature, set
> com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system
> property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
>                <message>Element
> {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
> not found</message>
>                <ns2:stackTrace>
>                   <ns2:frame class="com.norauto.webcli.wsse.SoapUtils"
> file="SoapUtils.java" line="39" method="getFirstChildNode"/>
>                   <ns2:frame
> class="com.norauto.webcli.wsse.WSSecurityAuthenticatorUsernameToken"
> file="WSSecurityAuthenticatorUsernameToken.java" line="73"
> method="extractUserNameToken"/>
>                   <ns2:frame
> class="com.norauto.webcli.wsse.WSSecurityAuthenticatorUsernameToken"
> file="WSSecurityAuthenticatorUsernameToken.java" line="39"
> method="authenticate"/>
>                   <ns2:frame
> class="com.norauto.webcli.wsse.WSSecurityHandler"
> file="WSSecurityHandler.java" line="42" method="handleMessage"/>
>                   <ns2:frame
> class="com.norauto.webcli.wsse.WSSecurityHandler"
> file="WSSecurityHandler.java" line="9" method="handleMessage"/>
>                   <ns2:frame
> class="com.sun.xml.ws.handler.HandlerProcessor"
> file="HandlerProcessor.java" line="292" method="callHandleMessage"/>
>                   <ns2:frame
> class="com.sun.xml.ws.handler.HandlerProcessor"
> file="HandlerProcessor.java" line="135" method="callHandlersRequest"/>
>                   <ns2:frame
> class="com.sun.xml.ws.handler.ServerSOAPHandlerTube"
> file="ServerSOAPHandlerTube.java" line="134"
> method="callHandlersOnRequest"/>
>                   <ns2:frame class="com.sun.xml.ws.handler.HandlerTube"
> file="HandlerTube.java" line="116" method="processRequest"/>
>                   <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
> file="Fiber.java" line="598" method="__doRun"/>
>                   <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
> file="Fiber.java" line="557" method="_doRun"/>
>                   <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
> file="Fiber.java" line="542" method="doRun"/>
>                   <ns2:frame class="com.sun.xml.ws.api.pipe.Fiber"
> file="Fiber.java" line="439" method="runSync"/>
>                   <ns2:frame
> class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java"
> line="243" method="process"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit"
> file="HttpAdapter.java" line="471" method="handle"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java"
> line="244" method="handle"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.servlet.ServletAdapter"
> file="ServletAdapter.java" line="135" method="handle"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.servlet.WSServletDelegate"
> file="WSServletDelegate.java" line="129" method="doGet"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.servlet.WSServletDelegate"
> file="WSServletDelegate.java" line="160" method="doPost"/>
>                   <ns2:frame
> class="com.sun.xml.ws.transport.http.servlet.WSSpringServlet"
> file="WSSpringServlet.java" line="52" method="doPost"/>
>                   <ns2:frame class="javax.servlet.http.HttpServlet"
> file="HttpServlet.java" line="637" method="service"/>
>                   <ns2:frame class="javax.servlet.http.HttpServlet"
> file="HttpServlet.java" line="717" method="service"/>
>                   <ns2:frame
> class="org.apache.catalina.core.ApplicationFilterChain"
> file="ApplicationFilterChain.java" line="290" method="internalDoFilter"/>
>                   <ns2:frame
> class="org.apache.catalina.core.ApplicationFilterChain"
> file="ApplicationFilterChain.java" line="206" method="doFilter"/>
>                   <ns2:frame
> class="org.apache.catalina.core.StandardWrapperValve"
> file="StandardWrapperValve.java" line="233" method="invoke"/>
>                   <ns2:frame
> class="org.apache.catalina.core.StandardContextValve"
> file="StandardContextValve.java" line="191" method="invoke"/>
>                   <ns2:frame
> class="org.apache.catalina.core.StandardHostValve"
> file="StandardHostValve.java" line="127" method="invoke"/>
>                   <ns2:frame
> class="org.apache.catalina.valves.ErrorReportValve"
> file="ErrorReportValve.java" line="102" method="invoke"/>
>                   <ns2:frame
> class="org.apache.catalina.core.StandardEngineValve"
> file="StandardEngineValve.java" line="109" method="invoke"/>
>                   <ns2:frame
> class="org.apache.catalina.connector.CoyoteAdapter"
> file="CoyoteAdapter.java" line="298" method="service"/>
>                   <ns2:frame
> class="org.apache.coyote.http11.Http11Processor"
> file="Http11Processor.java" line="852" method="process"/>
>                   <ns2:frame
> class="org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler"
> file="Http11Protocol.java" line="588" method="process"/>
>                   <ns2:frame
> class="org.apache.tomcat.util.net.JIoEndpoint$Worker"
> file="JIoEndpoint.java" line="489" method="run"/>
>                   <ns2:frame class="java.lang.Thread" file="Thread.java"
> line="619" method="run"/>
>                </ns2:stackTrace>
>             </ns2:exception>
>          </detail>
>       </soapenv:Fault>
>    </soapenv:Body>
> </soapenv:Envelope>
> 



_______________________________________________
If you reply to this email, your message will be added to the discussion below:
http://forum.petalslink.com/Comment-invoke-un-web-service-avec-des-WS-Security-tp3076396p3085453.html
To start a new topic under Users (get help, provide help), email ml-node+2681628-1333396262-385891 at n3.nabble.com
To unsubscribe from Users (get help, provide help), visit http://forum.petalslink.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2681628&code=dXNlcnNAZm9ydW0ucGV0YWxzbGluay5vcmd8MjY4MTYyOHwtOTE3MDU0NjU4
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://forum-list.petalslink.org/pipermail/users/attachments/20110620/2038704e/attachment-0001.htm>


More information about the Users mailing list