soa-model
soa-model copied to clipboard
No Proxy Support
There does not appear to be anyway to proxy the http request initiated by new WSDLParser().parser(url).
Is this on the roadmap? If not, can I contribute the solution?
It is not on the roadmap. If you want to you can send a pull request.
Thomas
predic8 GmbH Moltkestr. 40
53173 Bonn
http://predic8.de Tel: +49 (0) 228 5552576-0 Fax: +49 (0) 228 5552576-50
Amtsgericht Bonn HRB 16152 Geschäftsführer: Thomas Bayer
Am 13/07/14 19:53, schrieb Randy Solton:
There does not appear to be anyway to proxy the http request initiated by new WSDLParser().parser(url).
Is this on the roadmap? If not, can I contribute the solution?
— Reply to this email directly or view it on GitHub https://github.com/membrane/soa-model/issues/218.
The soa-model
project can be used with a custom resource resolver. Such a resolver can be implemented to use a HTTP proxy.
The service-proxy
does exactly this, for example. For example, in https://github.com/membrane/service-proxy/blob/master/core/src/main/java/com/predic8/membrane/core/rules/SOAPProxy.java#L94 it replaces soa-model
's default resource resolver by a custom one. service-proxy
's resolverMap
used in this example is much more powerful and can be configured to use a HTTP proxy.
Note, though, that service-proxy
completely implements its own HTTP stack. If this concerns you (it will, for example, impact your binary's size), you might be better of patching/overriding resolveViaHttp(...)
in https://github.com/membrane/soa-model/blob/master/core/src/main/groovy/com/predic8/xml/util/ExternalResolver.groovy#L89 .
In case you go with service-proxy
, I'd try
ResolverMap rm = new ResolverMap();
ProxyConfiguration proxyConfig = new ProxyConfiguration();
proxyConfig.set...(...);
rm.getHTTPSchemaResolver().getHttpClientConfig().setProxy(proxyConfig);
WSDLParserContext context = new WSDLParserContext();
context.setResourceResolver(rm.toExternalResolver().toExternalResolver());
I have not tested this, though. ;)
I thought about extracting the resolver map classes into a separate resolver
project on which service-proxy
and soa-model
could depend. But then the HTTP resolver depends on service-proxy
. As a resolver without a HTTP resolver is not much fun, this creates a cyclic dependency service-proxy -> resolver -> service-proxy
. -- So this won't happen soon.
Of course, if you patch a simple HTTP proxy support into soa-model`s ExternalResolver, pull requests are very welcome! :)