On 1/11/11 5:02 AM, Jim Talbut wrote:
Hi,

Some of our web services are accessed from both inside and outside our
firewall.
And they are accessed by stupid clients that insist on believing the
soap address from the WSDL file.
So I like autoRewriteSoapAddress.

Unfortunately some of our external web services have to be accessed over
HTTPS, and that is terminated at our load balancer.
So the request for the wsdl file is seen as being http, but I need the
address in the WSDL file to be https.

I can't see any standard way for a java servlet to know that the
original request was over https - given that the request it sees isn't.
Our load balancer does add a few HTTP headers to the request, so if I
could hook the WSDL response with my own code I could set the location
correctly - but is that possible?

I think you can interceptor the WSDL query request in your load balancer instead of delegate that request to CXF endpoints.
In this way, you can get the full control of the WSDL port address.
The only short coming I can see is you need to take care of the services WSDL in you code.

I think I'm stuck with declaring two CXF endpoints, an external one with
a published URL and an internal one with autoRewriteSoapAddress.
Anyone got any better ideas?
I don't think current CXF supports two address as you want.


Thanks.

Jim



--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang

Reply via email to