hi,

thank you for the feedback - it seems as if i finally got it working : 

1. i overwrite Service Endpoint for the Single Request with the Proxy URL : 
client.getRequestContext().put(Message.ENDPOINT_ADDRESS, 
"https:/some-weird-https-proxy.com") ;

-> this assures, request is delivered with https to proxy

2. i modify Http Header variable in Interceptor on the right phase : 

-> Phase WRITE seems to be the right position for

Map<String, List<String>> requestHeaders = new HashMap<String, List<String>>();
                
requestHeaders.put("Host", 
Arrays.asList("https://some-usual-soap-endpoint.com";));
message.put(Message.PROTOCOL_HEADERS, requestHeaders);


3. finally i can see within debug logs  :

 DEBUG org.apache.cxf.transport.http.Headers - Host: 
https://some-usual-soap-endpoint.com

ID: 1
Address: https:/some-weird-https-proxy.com
Encoding: UTF-8
Content-Type: text/xml
Headers: {Host=[https://some-usual-soap-endpoint.com], 
Payload: <soap:Envelope > SOME STRANGE SOAP STUFF</soap:Envelope>



kind regards

O

 
                        

Am 24.07.2014 um 22:56 schrieb Christian Schneider <[email protected]>:

> I would propose to create a second service client for the service that uses 
> the https address.
> 
> Then you can use the http client for most operations and the https one for 
> your one request. If you need to hide that you can
> create a small java class that implements the service interface and delegates 
> to the correct one of the two proxies depending on the called operation.
> 
> That should be a lot easier then making CXF do the magic.
> 
> Christian
> 
> 
> On 23.07.2014 21:57, Oliver Becherer wrote:
>> hi all,
>> 
>> i'm just stuck with a problem using cxf :
>> 
>> i implemented a soap client to a webservice using cxf 2.6.1 and its working 
>> fine... now i have the challenge of sending one single service operation
>> to the usual endpoint but over a proxy server that only accepts https.
>> 
>> so these are the base facts :
>> 
>> Service Endpoint : https://some-usual-soap-endpoint.com
>> 
>> Proxy Server : https://some-weird-https-proxy.com
>> Proxy Port : 7777
>> 
>> This is my approach :
>> 
>> HTTPClientPolicy policy = new HTTPClientPolicy();
>> policy.setProxyServer("some-weird-https-proxy.com");
>> policy.setProxyServerPort(7777);
>>                      
>> Client client = ClientProxy.getClient(awspt);
>> HTTPConduit http = (HTTPConduit) client.getConduit();
>> http.setClient(policy);
>> 
>> 
>> so far so good, but the requests are reaching the proxy not using https, but 
>> http and the proxy is not accepting this.
>> 
>> can you help me, how to configure the Proxy Server within my Client, so 
>> Request is sent using https?
>> 
>> any help is highly appreciated!
>> 
>> kind regards
>> 
>> O
> 
> 
> -- 
> Christian Schneider
> http://www.liquid-reality.de
> 
> Open Source Architect
> http://www.talend.com
> 

Reply via email to