Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1150279

Summary: Please ensure Proxy configuration works with SOAP Reference
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Rick Wagner <rwagner>
Component: SwitchYardAssignee: Rick Wagner <rwagner>
Status: CLOSED WONTFIX QA Contact: Jiri Sedlacek <jsedlace>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.0.0CC: kconner, oskutka, soa-p-jira, tcunning
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1150280 (view as bug list) Environment:
Last Closed: 2015-02-16 13:18:40 UTC Type: Support Patch
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Rick Wagner 2014-10-07 19:34:40 UTC
Description of problem:  When configuring a Proxy on a SOAP reference, the proxy does not seem to be invoked.

Steps to replicate:

- Use the Quickstart 'Camel-soap-proxy'.  Compile and deploy it, prepare a test client (i.e. SOAPUI).

- Get a proxy server, i.e. LittleProxy.  Per the instructions at [1], clone the source to your machine.
- In the source directory, make a few changes:
- main/java/org/littleshoot/proxy/impl/DefaultHttpProxyServer.java (change 8080)
- main/java/org/littleshoot/proxy/Launcher.java (change from port 8080)
- test/resources/log4j.xml  // suggest default 'debug' to see traffic
- Use bash run script to compile and start the proxy

- In SOAPUI, use the 'Preferences' tab to setup using the proxy.  (Use the port you changed from 8080 above).  Note how requests originating from SOAPUI now cause log output in LittleProxy.  Then turn off the proxy here.

- Now change the Quickstart, trying to get the proxy to work on the Reference to the Reverse Service.  That's the challenge!  What seems like a good configuration doesn't show anything going to LittleProxy.

(User situation:  The proxy doesn't seem to be effective.  These steps are a way to simulate.) 

Thanks,

Rick


[1] https://github.com/adamfisk/LittleProxy

Comment 1 kconner 2014-10-07 23:56:12 UTC
The issue is that the HttpConduit created in the OutboundHandler, where the proxy/authentication information is configured, depends on the address specified in the WSDL.  The quickstart uses "UPDATED_AT_RUNTIME" which has no schema and, therefore, does not match the endpoint's schema (http).

The workaround is to change the address in the wsdl file so that it has the same schema, i.e. make sure the address is

 <soap:address location="http:UPDATED_AT_RUNTIME"/>

Comment 2 kconner 2015-02-14 07:26:34 UTC
Okay, it has taken quite a bit of digging but I finally found the change in cxf that addresses this issue.

https://github.com/apache/cxf/commit/ccc7ad53939574d8a8289fed65420ffe2d8650a3

The request context contains the endpoint address, this change populates the message with that information and it is then used within AbstractConduitSelector.getSelectedConduit to initialise the conduit.

In the original report this value is not propagated so the conduit is created based on the WSDL address, after the change the conduit is created with the correct endpoint address and therefore works without the workaround.