[Users] Contrôle de la SOAP fault dans BC Soap InflowSecurity

ugo ulysse.goarant at soprasteria.com
Wed Jul 20 15:36:34 CEST 2016


Bonjour,

Dans un BC Soap, nous utilisons le paramètre de service InflowSecurity pour
contrôler les informations d'authentification du message entrant. Dans le
cas où ces informations sont incorrectes, une exception est levée depuis la
classe de passwordCallbackClass et le client reçoit une SOAP fault de la
sorte avec l'exception en tant que détail de la Fault :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server</faultcode>
         <faultstring>unknown</faultstring>
         <detail>
            <Exception>org.apache.axis2.AxisFault
	at
org.apache.rampart.handler.WSDoAllReceiver.processMessage(WSDoAllReceiver.java:92)
	at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
	at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
	at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:254)
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
	at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
	at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144)
	at
org.ow2.petals.binding.soap.listener.incoming.servlet.SoapServlet.doPost(SoapServlet.java:224)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
	at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
	at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
	at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
	at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)
Caused by:
com.myproject.security.PasswordCallbackHandler$IncorrectPasswordFault
	at
com.myproject.security.PasswordCallbackHandler.handle(PasswordCallbackHandler.java:99)
	at
org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:168)
	at
org.apache.ws.security.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:61)
	at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:328)
	at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:245)
	at
org.apache.rampart.handler.WSDoAllReceiver.processBasic(WSDoAllReceiver.java:211)
	at
org.apache.rampart.handler.WSDoAllReceiver.processMessage(WSDoAllReceiver.java:86)
	... 23 more</Exception>
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

Comment faire pour contrôler la fault envoyée dans ce cas et ainsi pouvoir
valoriser faultcode, faultstring et detail ?

Merci d'avance,
Cordialement,

Ulysse Goarant




--
View this message in context: http://forum.petalslink.com/Controle-de-la-SOAP-fault-dans-BC-Soap-InflowSecurity-tp4025761.html
Sent from the Users (get help, provide help) mailing list archive at Nabble.com.


More information about the Users mailing list