hi nandana,
I also tried it with axis2 1.5 and rampart 1.5 RC1 -> same result

0 [JHttp-3] 2009-09-16 15:02:14.459 AxisEngine  - The security token could
not be authenticated or authorized; nested exception is: 
        javax.security.auth.callback.UnsupportedCallbackException: Auth check
failed
org.apache.axis2.AxisFault: The security token could not be authenticated or
authorized; nested exception is: 
        javax.security.auth.callback.UnsupportedCallbackException: Auth check
failed
        at
org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:172)
        at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:95)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        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:534)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at
org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:635)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: org.apache.ws.security.WSSecurityException: The security token
could not be authenticated or authorized; nested exception is: 
        javax.security.auth.callback.UnsupportedCallbackException: Auth check
failed
        at
org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:172)
        at
org.apache.ws.security.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:56)
        at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:326)
        at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:243)
        at org.apache.rampart.RampartEngine.process(RampartEngine.java:154)
        at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
        ... 24 more
Caused by: javax.security.auth.callback.UnsupportedCallbackException: Auth
check failed
        at
com.groiss.ws.security.UserNameTokenAuthHandler.handle(UserNameTokenAuthHandler.java:39)
        at
org.apache.rampart.TokenCallbackHandler.handle(TokenCallbackHandler.java:90)
        at
org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:160)
        ... 29 more
0 [JHttp-3] 2009-09-16 15:02:14.469 log  -
/wf/services.axis2/SecureTokenService
java.lang.NullPointerException
        at
org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:372)
        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:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:508)
        at
org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:423)
        at
org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:386)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:176)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        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:534)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at
org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:635)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
2 [JHttp-6] 2009-09-16 15:02:14.539 BuilderUtil  - OMException in
getSOAPBuilder
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(StAXSOAPModelBuilder.java:267)
        at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:214)
        at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:196)
        at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:207)
        at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:161)
        at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:110)
        at
org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:682)
        at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:210)
        at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:140)
        at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:103)
        at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
        at
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
        at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
        at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
        at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
        at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:539)
        at
org.apache.rahas.client.STSClient.requestSecurityToken(STSClient.java:145)
        at
com.groiss.ws.client.SecureServiceClient.login(SecureServiceClient.java:149)
        at com.groiss.demo.ws.security.saml.Client.call(Client.java:43)
        at com.groiss.demo.ws.Client.performCall(Client.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.groiss.servlet.Dispatcher.service(Dispatcher.java:254)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
        at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
        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:534)
        at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
        at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)

regards,
gerhard


Nunny wrote:
> 
> Hi Giuseppe,
>               Are you using Axis2 1.4.1 and  Rampart 1.3 ? Can you try
> with
> Rampart 1.4 ?
> 
> regards,
> Nandana
> 
> On Fri, Jul 3, 2009 at 4:51 PM, Giuseppe Gortan
> <superbe...@gmail.com>wrote:
> 
>> 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
>> <parameter name="InflowSecurity">
>>                        <action>
>>                                <items>UsernameToken</items>
>>                                <passwordCallbackClass>
>>                                        mypackage.myapp.PasswordHandler
>>                                </passwordCallbackClass>
>>                        </action>
>>        </parameter>
>>
>> [2] PasswordHandler
>> public class PasswordHandler implements CallbackHandler {
>>        public void handle(Callback[] callbacks) throws IOException,
>> UnsupportedCallbackException {
>>                for (int i = 0; i < callbacks.length; i++) {
>>                        if (callbacks[i] instanceof WSPasswordCallback) {
>>                            try{
>>                                        WSPasswordCallback pwcb =
>> (WSPasswordCallback) callbacks[i];
>>                                        String username =
>> pwcb.getIdentifer();
>>                                        String user = getUser(username);
>>                                        String password =
>> getPlainPassword(user);
>>
>>                                        int passwordType =
>> pwcb.getUsage();
>>                                        if (passwordType ==
>> WSPasswordCallback.USERNAME_TOKEN) {
>>                                               
>> 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(TransportUtils.java:90)
>>        at
>> org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:353)
>>        at
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
>>        at
>> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.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(StAXSOAPModelBuilder.java:251)
>>        at
>> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:209)
>>        at
>> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:191)
>>        at
>> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:172)
>>        at
>> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:156)
>>        at
>> org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:105)
>>        at
>> org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:677)
>>        at
>> org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:182)
>>        at
>> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:112)
>>        at
>> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:88)
>>        ... 6 more
>>
>> [4] Error log
>> GRAVE: Servlet.service() for servlet AxisServlet threw exception
>> java.lang.NullPointerException
>>        at
>> org.apache.rampart.RampartMessageData.<init>(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=utf-8
>>
>> Content-Length: 2154
>>
>> Date: Fri, 03 Jul 2009 10:47:04 GMT
>>
>> Connection: close
>>
>>
>>
>> <html>
>>   <head>
>>      <title>Apache Tomcat/6.0.18 - Error report</title>
>>      <style>
>>         <!--H1
>>
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
>> H2
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
>> H3
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
>> BODY
>> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
>> B
>> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
>> P
>> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
>> {color : black;}A.name {color : black;}HR {color :
>> #525D76;}--></style>
>>      </head>
>>      <body>
>>         <h1>HTTP Status 500 - </h1>
>>         <HR size="1" noshade="noshade">
>>            <p>
>>               type Exception report
>>            </p>
>>            <p>
>>               message
>>               <u></u>
>>            </p>
>>            <p>
>>               description
>>               <u>The server encountered an internal error () that
>> prevented it from fulfilling this request.</u>
>>            </p>
>>            <p>
>>               exception
>>               <pre>java.lang.NullPointerException
>> 
>> org.apache.rampart.RampartMessageData.&lt;init&gt;(RampartMessageData.java: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)</pre>
>>            </p>
>>            <p>
>>               note
>>               <u>The full stack trace of the root cause is available
>> in the Apache Tomcat/6.0.18 logs.</u>
>>            </p>
>>            <HR size="1" noshade="noshade">
>>               <h3>Apache Tomcat/6.0.18</h3>
>>            </body>
>>         </html>
>> --
>> «The phonograph has no commercial value at all.»
>>  Thomas Edison, American inventor, 1880s.
>>
> 
> 
> 
> -- 
> Nandana Mihindukulasooriya
> WSO2 inc.
> 
> http://nandana83.blogspot.com/
> http://www.wso2.org
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Wrong-response-when-authentication-fails-with-Rampart-%28not-SOAP-but--HTML%29-tp24321586p25472075.html
Sent from the Axis - User mailing list archive at Nabble.com.

Reply via email to