Well, one option may be to look into the http-client code and see if the 
SPNEGO stuff is easily pulled out into a 
org.apache.cxf.transport.http.HttpAuthSupplier thing.    At one point, I did 
pull out the DIGEST stuff so digest auth is supported with CXF.   I don't know 
anything about SPNEGO to know how easy/hard that would be to do.    That said, 
you might want to just try enabling the DIGEST auth in CXF and see if that 
will work for you.     There is a authSupplier thing on the conduit config 
that can be set to org.apache.cxf.transport.http.DigestAuthSupplier.   
Alternatively. just turn on the autoRedirect or maxRetransmits to > 1 and it 
may just work.   :-)

Dan



On Thu October 22 2009 3:22:53 am Spam wrote:
> Hi all,
> 
> I'm digging into including SPNEGO support for the web services (based on
> CXF 2.2.4) I'm implementing.
> 
> On server side, using 'Servlet Transport
> <http://cxf.apache.org/docs/servlet-transport.html>', it shouldn't be an
> issue since handling of (SPNEGO) authentication is performed by Tomcat.
> On client side, I can successfully authenticate myself to Tomcat using
> Commons HTTP Client 4.x (with some tweaking around 'Custom
> authentication scheme').
> So I plan to use something like a 'Commons HTTP Client Transport' for
> CXF, which sounds good from my newbies mind.
> 
> Reading JIRA, and your mail, I'm a bit disappointed since 'Commons HTTP
> Client Transport' is far to be a reality.
> 
> Do you have some hints about a way to support SPNEGO for web services
> based on CXF (at least for client side, i.e. 'Client HTTP Transport'
> <http://cxf.apache.org/docs/client-http-transport-including-ssl-support.htm
> l>)?
> 
> Any help would be greatly appreciated.
> Johann
> 
> ---------- Forwarded message ----------
> From: *Daniel Kulp* <dk...@apache.org <mailto:dk...@apache.org>>
> Date: Mon, Oct 5, 2009 at 11:13 PM
> Subject: Re: Commons http client support?
> To: users@cxf.apache.org <mailto:users@cxf.apache.org>
> Cc: Kevin Priebe <ke...@realtyserver.com <mailto:ke...@realtyserver.com>>
> 
> 
> 
> I'm definitely not sure what would be causing that sort of timeout.
> Strange.
> 
> I did look a little into doing an http-client based conduit, but it's not
> exactly an easy task.   The API's are pretty much backwords from
> HTTPUrlConnection which makes mapping it hard.   Basically, the
> URLConnection
> gives you an OutputStream that you write to as need to.   With http-client,
> you provide an object that it calls with the Outputstream when IT wants you
> to.   Thus, we would need to do some fancy PhaseInterceptorChain
> pause/resume/reenter things to get it to still stream.   Either that or
>  just don't stream which is another option.
> 
> HTTPs is another whole HUGE HUGE issue.    Mapping all the CXF https
>  options onto http-client is not easy, and in some cases, not possible due
>  to missing stuff in http-client (although that investigation was against
>  http-client 3, not 4 so things have possibly changed).
> 
> Anyway, from my personal perspective, it just hasn't been enough of a
> priority
> to really start it.   The customers I have dealt with haven't really hit
>  any issues with the current conduit to justify the amount of work to do
>  this.
> 
> That said, if I was to start the work, I'd really suggest a layered
>  approach of subclassing the current conduit and just invoke the
>  http-client stuff in the "known cases" where it would work well.  Example:
>  allow the existing code
> to handle https for now, only use http-conduit if streaming is turned off
> anyway (no chunking), etc...   Then expand out from there.
> 
> Dan
> 
> On Mon October 5 2009 1:01:09 pm Kevin Priebe wrote:
> > Hi,
> >
> >
> >
> > I have been transitioning our users from our old XFire client to a new
> > CXF client over the past few months.  I have been getting a lot more
> > calls lately about read timeouts (SOAPFaultException: Could not send
> > Message. - caused by - SocketTimeoutException: Read timed out).  Here are
> > my observations:
> >
> >
> >
> > -          The users were successfully using the XFire client, and as
> > soon as they start using the CXF client, they seem to randomly get these
> 
> errors.
> 
> > -          Reverting to the old XFire client works fine for these users
> >  with no problems
> >
> > -          Both web services are on the same server, running in the same
> > tomcat instance - no other changes were made
> >
> > -          It affects Satellite Internet users more, but also happens to
> > fast Cable Internet users
> >
> > -          A ping to our server for a Satellite user was always less
> 
> than 2
> 
> > seconds, which is far less than the read timeout
> >
> > -          Read timeout is set to 30 seconds - all requests are simple
> > and should be fast - less than 5 seconds for sure
> >
> > -          I have increased the timeout to 60 seconds, but got the same
> > behaviour - either it successfully connects within seconds, or never
> > does. The timeout just seems to delay the error...
> >
> > -          I have experienced this problem when connecting to the live
> > server myself, but only 2-3 times in the last few months.
> >
> >
> >
> > XFire just seems a little more resilient to connection problems than CXF.
> > Perhaps this is because it uses the Apache commons httpclient?
> >
> >
> >
> > Are there any plans to use the commons httpclient in CXF?  I found
> 
> this old
> 
> > open issue https://issues.apache.org/jira/browse/CXF-291 which appears to
> > have been forgotten.  The description says it shouldn't be hard to
> > integrate.  I even started looking into doing it myself, but am not sure
> > I have time.  If anyone has any pointers or partial code, that would be
> > helpful.
> >
> >
> >
> > Thank you for any help or insight as to why this might be happening
> 
> and how
> 
> > to fix it.  If you need additional information, let me know.  We are
> > using a pretty basic setup with the tomcat CXF servlet and JaxWS.  We are
> > using the GZip feature, and the following client policy config:
> >
> >
> >
> > httpClientPolicy.setConnectionTimeout(30000);
> >
> > httpClientPolicy.setReceiveTimeout(30000);
> >
> > httpClientPolicy.setAllowChunking(true);
> >
> > httpClientPolicy.setAutoRedirect(true);
> >
> > httpClientPolicy.setMaxRetransmits(3);
> >
> >
> >
> > I have tried disabling GZip and changing all the above settings, with no
> > luck.
> >
> >
> >
> > Kevin
> 
> --
> Daniel Kulp
> dk...@apache.org <mailto:dk...@apache.org>
> http://www.dankulp.com/blog
> 

-- 
Daniel Kulp
dk...@apache.org
http://www.dankulp.com/blog

Reply via email to