Syed Mudassir Ahmed created CXF-8375:
----------------------------------------

             Summary: Access to httpprocessor field of HttpAsyncClientBuilder 
in AsyncHTTPConduitFactory
                 Key: CXF-8375
                 URL: https://issues.apache.org/jira/browse/CXF-8375
             Project: CXF
          Issue Type: New Feature
          Components: Transports
    Affects Versions: 3.4.1
            Reporter: Syed Mudassir Ahmed
             Fix For: 3.4.2


In CXF versions 2.7.18, we clearly had access to httpProcessor as per this 
commit 
[https://github.com/apache/cxf/commit/a18be4fac03d3886317b0201123e9917d1a33e60#diff-f5349d24a3d1a3bced2aa168ce24d586461fe743d2e0b72f0fafcfedb9a99234L132.]

I don't know why access to that httpProcessor is revoked in the subsequent 
versions of CXF.

We were facing a problem.  We were talking to a webservice.  The webservice 
returns a redirect 3XX response mentioning the new host to talk to.  And that 
host actually contains port as well such as "newserver.com:80".

And while handling the redirect, CXF was putting the target host in the request 
as "newserver:80" instead of just "newserver".  This was failing and we were 
not able to fetch the results.

The fix was to add a custom HTTP request interceptor in httpProcessor.  This 
interceptor stays on top of all the other interceptors.  And it simply chops 
the port and add the target host as just "newserver".

It worked well in CXF version 2.7.18.  The moment we migrated to CXF 3.x (due 
to moving to JDK11) then our app starting giving compilation error.  Because in 
3.x version, access to that httpProcessor is revoked.

I would suggest to regain the access to that field since it was already like 
that before.  I know mine could be a rare requirement but it was easy for to 
add an interceptor to httpProcessor earlier.

Right now, we have to create a custom factory and get the things done.  They 
are not that straight-forward.  If we had access to httpProcessor then no need 
to create any custom factory.  We can simply add our interceptors directly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to