Return-Path: Delivered-To: apmail-ws-axis-user-archive@www.apache.org Received: (qmail 25926 invoked from network); 16 Sep 2009 12:40:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 16 Sep 2009 12:40:05 -0000 Received: (qmail 80270 invoked by uid 500); 16 Sep 2009 12:40:03 -0000 Delivered-To: apmail-ws-axis-user-archive@ws.apache.org Received: (qmail 80213 invoked by uid 500); 16 Sep 2009 12:40:03 -0000 Mailing-List: contact axis-user-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-user@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-user@ws.apache.org Received: (qmail 80193 invoked by uid 99); 16 Sep 2009 12:40:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Sep 2009 12:40:03 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Sep 2009 12:39:53 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1MntnH-00083S-TO for axis-user@ws.apache.org; Wed, 16 Sep 2009 05:39:31 -0700 Message-ID: <25471523.post@talk.nabble.com> Date: Wed, 16 Sep 2009 05:39:31 -0700 (PDT) From: gerhard presser To: axis-user@ws.apache.org Subject: Re: Wrong response when authentication fails with Rampart (not SOAP but HTML) In-Reply-To: <9e2fff830907070958n6dd3ee80taeffde68d4cd7df9@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Nabble-From: gpresser@groiss.com References: <359e9d80907030421x20c04976x8e33da6e326f3d54@mail.gmail.com> <9e2fff830907070958n6dd3ee80taeffde68d4cd7df9@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org Hi! I'm using Axis2 1.5 and Rampart 1.4 --> same problem :-( regards, Gerhard Nunny wrote: >=20 > Hi Giuseppe, > Are you using Axis2 1.4.1 and Rampart 1.3 ? Can you try > with > Rampart 1.4 ? >=20 > regards, > Nandana >=20 > On Fri, Jul 3, 2009 at 4:51 PM, Giuseppe Gortan > wrote: >=20 >> Hi everybody. >> >> I have a problem with axis2 (1.4.1) and rampart (1.3). >> I put a simple policy in services.xml [1] and I wrote a >> PasswordHandler [2]. Everything works fine if user and password are >> correct. When the user doesn't exist (getUser returns >> UserNotFoundException), the authentication process (correctly) fails, >> but returning a HTML error page [5] instead of a SOAP response >> message. The servlet engine logs an error message coming from the Axis >> Servlet [4], and the SOAP client, that uses a library generated by >> WSDL2Java, logs the error "First Element must contain the local name, >> Envelope , but found html" [3]. >> >> I want to return to the client a custom SOAP error message if >> authentication process fails. How can I do it? >> >> Thanks, >> >> Giuseppe >> >> >> [1] Policy >> >> >> UsernameToken >> >> mypackage.myapp.PasswordHandler >> >> >> >> >> [2] PasswordHandler >> public class PasswordHandler implements CallbackHandler { >> public void handle(Callback[] callbacks) throws IOException, >> UnsupportedCallbackException { >> for (int i =3D 0; i < callbacks.length; i++) { >> if (callbacks[i] instanceof WSPasswordCallback) { >> try{ >> WSPasswordCallback pwcb =3D >> (WSPasswordCallback) callbacks[i]; >> String username =3D >> pwcb.getIdentifer(); >> String user =3D getUser(username)= ; >> String password =3D >> getPlainPassword(user); >> >> int passwordType =3D >> pwcb.getUsage(); >> if (passwordType =3D=3D >> WSPasswordCallback.USERNAME_TOKEN) { >> =20 >> pwcb.setPassword(password); >> } else { >> throw new >> UnsupportedCallbackException(callbacks[i], >> "Unrecognized Callback"); >> } >> } catch (UserNotFoundException e){ >> throw new AxisFault("No user found", >> e.getCause()); >> } >> } >> } >> } >> >> [3] First Element must contain the local name, Envelope , but found html >> org.apache.axis2.AxisFault: First Element must contain the local name, >> Envelope , but found html >> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) >> at >> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti= ls.java:90) >> at >> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(Out= InAxisOperation.java:353) >> at >> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOper= ation.java:416) >> at >> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInA= xisOperation.java:228) >> at >> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163= ) >> at >> mypackage.myapp.WebservicesStub.myRemoteWS(WebservicesStub.java:6642) >> at mypackage.myapp.client.Client.main(Client.java:63) >> Caused by: org.apache.axiom.soap.SOAPProcessingException: First >> Element must contain the local name, Envelope , but found html >> at >> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(St= AXSOAPModelBuilder.java:251) >> at >> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(= StAXSOAPModelBuilder.java:209) >> at >> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElem= ent(StAXSOAPModelBuilder.java:191) >> at >> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:1= 72) >> at >> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(= StAXSOAPModelBuilder.java:156) >> at >> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.(StAXSOAPM= odelBuilder.java:105) >> at >> org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:677= ) >> at >> org.apache.axis2.transport.TransportUtils.createDocumentElement(Transpor= tUtils.java:182) >> at >> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti= ls.java:112) >> at >> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti= ls.java:88) >> ... 6 more >> >> [4] Error log >> GRAVE: Servlet.service() for servlet AxisServlet threw exception >> java.lang.NullPointerException >> at >> org.apache.rampart.RampartMessageData.(RampartMessageData.java:308= ) >> at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61= ) >> at >> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64) >> at org.apache.axis2.engine.Phase.invoke(Phase.java:317) >> at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264) >> at >> org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:520) >> at >> org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java= :416) >> at >> org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet= .java:379) >> at >> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >> >> [5] >> HTTP/1.1 500 Internal Server Error >> >> Server: Apache-Coyote/1.1 >> >> Content-Type: text/html;charset=3Dutf-8 >> >> Content-Length: 2154 >> >> Date: Fri, 03 Jul 2009 10:47:04 GMT >> >> Connection: close >> >> >> >> >> >> Apache Tomcat/6.0.18 - Error report >> >> >> >>

HTTP Status 500 -

>>
>>

>> type Exception report >>

>>

>> message >> >>

>>

>> description >> The server encountered an internal error () that >> prevented it from fulfilling this request. >>

>>

>> exception >>

java.lang.NullPointerException
>>=20
>> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.ja=
va:308)
>> org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
>> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
>>  org.apache.axis2.engine.Phase.invoke(Phase.java:317)
>>  org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
>>  org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:520)
>> org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java=
:416)
>>
>> org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet=
.java:379)
>>
>>  org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167=
)
>>      javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>  javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>

>>

>> note >> The full stack trace of the root cause is available >> in the Apache Tomcat/6.0.18 logs. >>

>>
>>

Apache Tomcat/6.0.18

>> >> >> -- >> =C2=ABThe phonograph has no commercial value at all.=C2=BB >> Thomas Edison, American inventor, 1880s. >> >=20 >=20 >=20 > --=20 > Nandana Mihindukulasooriya > WSO2 inc. >=20 > http://nandana83.blogspot.com/ > http://www.wso2.org >=20 >=20 --=20 View this message in context: http://www.nabble.com/Wrong-response-when-aut= hentication-fails-with-Rampart-%28not-SOAP-but--HTML%29-tp24321586p25471523= .html Sent from the Axis - User mailing list archive at Nabble.com.