When posting an URL that contains not encoded invalid characters, the answer from the CXF web service, and the Fabric Gateway differs:
For CXF web service:
$ curl "http://localhost:8183/cxf/crm/customerservice/customers/123?foo=bar|baz"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Customer xmlns="http://rest.fabric.quickstarts.fabric8.io/"><id>123</id><name>John</name></Customer>
For Fabric gateway, it hangs
$ curl "http://localhost:9000/cxf/crm/customerservice/customers/123?foo=bar|baz"
It has been reported already as a bug, and will be fixed on 6.3.0 R16 ( Please take a look at https://issues.redhat.com/browse/ENTESB-12704 )
With the fix, it returns a 404 code
$ curl -v "http://localhost:9000/cxf/crm/customerservice/customers/123?foo=bar|baz"
- Trying 127.0.0.1:9000...
- TCP_NODELAY set
- Connected to localhost (127.0.0.1) port 9000 (#0)
> GET /cxf/crm/customerservice/customers/123?foo=bar|baz HTTP/1.1
> Host: localhost:9000
> User-Agent: curl/7.65.3
> Accept: /
- Mark bundle as not supporting multiuse
< HTTP/1.1 404 Error: Illegal character in query at index 46: /cxf/crm/customerservice/customers/123?foo=bar|baz
< Content-Length: 0
- Connection #0 to host localhost left intact
What customer wants, is for both Fabric Gateway and CXF answer same way.
He is are aware that invalid unencoded characters on URL, are not allowed