I found the problem.
Having null check in
copyToResponse() fixed the problem.
if (headerList.get(i) != null) {
sb.append(headerObjectToString(headerList.get(i)));
}
Regards
Raman
From: Malisetti, Ramanjaneyulu
Sent: Tuesday, November 25, 2014 2:10 PM
To: [email protected]
Subject: basic authentication - no prompt for realm
Hi,
Our REST services are behaving differently after migrating from CXF
2.7.1 to 3.0.2. Our services are protected by username/password, while access
service from internet explorer we should get prompt (user realm) for username
and password. Now, on server side I see below exception but there is no prompt.
What could be wrong here? com.ca.security.RESTSecurityInInterceptor is our
interceptor does authentication
2014-11-25 14:02:43,434 DEBUG [qtp3017973-101 -
/node/rest/broker/meta:ModuleHandleType] phase.PhaseInterceptorChain
-133-org.apache.cxf.cxf-core-3.0.2 - Invoking handleFault on interceptor
com.ca.security.RESTSecurityInInterceptor@5628aa<mailto:com.ca.security.RESTSecurityInInterceptor@5628aa>
2014-11-25 14:02:43,434 DEBUG [qtp3017973-101 -
/node/rest/broker/meta:ModuleHandleType] phase.PhaseInterceptorChain
-133-org.apache.cxf.cxf-core-3.0.2 - Invoking handleFault on interceptor
org.apache.cxf.transport.https.CertConstraintsInterceptor@12c7c70<mailto:org.apache.cxf.transport.https.CertConstraintsInterceptor@12c7c70>
2014-11-25 14:02:43,434 DEBUG [qtp3017973-101 -
/node/rest/broker/meta:ModuleHandleType] phase.PhaseInterceptorChain
-133-org.apache.cxf.cxf-core-3.0.2 - Invoking handleFault on interceptor
org.apache.cxf.ws.policy.PolicyInInterceptor@96a91f<mailto:org.apache.cxf.ws.policy.PolicyInInterceptor@96a91f>
2014-11-25 14:02:43,436 WARN [qtp3017973-101 -
/node/rest/broker/meta:ModuleHandleType] phase.PhaseInterceptorChain
-133-org.apache.cxf.cxf-core-3.0.2 - Interceptor for
{http://rest.remote.ucf.ca.com/}RESTTransport has thrown exception, unwinding
now
java.lang.NullPointerException
at
org.apache.cxf.transport.http.Headers.headerObjectToString(Headers.java:456)
at org.apache.cxf.transport.http.Headers.copyToResponse(Headers.java:442)
at
org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:606)[140:org.apache.cxf.cxf-rt-transports-http:3.0.2]
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.flushHeaders(JettyHTTPDestination.java:286)[156:org.apache.cxf.cxf-rt-transports-http-jetty:3.0.2]
at
org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:773)
at
com.ca.ucf.remote.rest.security.RESTSecurityInInterceptor.sendErrorResponse(RESTSecurityInInterceptor.java:308)
at
com.ca.ucf.remote.rest.security.RESTSecurityInInterceptor.handleMessage(RESTSecurityInInterceptor.java:178)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)[133:org.apache.cxf.cxf-core:3.0.2]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)[133:org.apache.cxf.cxf-core:3.0.2]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)[140:org.apache.cxf.cxf-rt-transports-http:3.0.2]
at
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261)[156:org.apache.cxf.cxf-rt-transports-http-jetty:3.0.2]
at
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)[156:org.apache.cxf.cxf-rt-transports-http-jetty:3.0.2]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.Server.handle(Server.java:366)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)[53:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411]
at java.lang.Thread.run(Unknown Source)[:1.7.0_55]
Regards
Raman