Невозможно проложить туннель через прокси с помощью мыла Apache cxf - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь позвонить через SOAP через HTTPS-прокси с Apache CXF.

Это Java-приложение, работающее на Cloud Foundry.Прокси-сервер предоставляется в качестве службы Cloud Foundry.Остальные вызовы работают через настройку в RestTemplateCustomizer.

Я попробовал следующее (я пробовал каждое одобренное утверждение без успеха):

    PortType port = cs.getServicePort();
    assert port instanceof BindingProvider;
    BindingProvider bp = (BindingProvider) port;
    bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, serviceURL);
    //bp.getRequestContext().put("https.proxyHost", endpoint.getHost());
    //bp.getRequestContext().put("https.proxyPort", endpoint.getPort());

    final Client client = ClientProxy.getClient(port);
    final HTTPConduit http = (HTTPConduit) client.getConduit();

    http.getClient().setProxyServer(endpoint.getHost());
    http.getClient().setProxyServerPort(endpoint.getPort());
    http.getProxyAuthorization().setUserName(configProperties.getUser());
    http.getProxyAuthorization().setPassword(configProperties.getPassword());

    //http.getProxyAuthorization().setAuthorizationType("Basic");
    //http.getClient().setProxyServerType(ProxyServerType.SOCKS);

    http.getAuthorization().setUserName(configProperties.getUser());
    http.getAuthorization().setPassword(configProperties.getPassword());
    //http.getAuthorization().setAuthorizationType("Basic");

Stacktrace выглядит так:

2019-05-16T11: 11: 53,76 + 0200[APP / PROC / WEB / 0] OUT javax.xml.ws.WebServiceException: Не удалось отправить сообщение.2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.jaxws.JaxWsClientProxy.mapException (JaxWsClientProxy.java:183) 2019-05-16T11: 11: 53.76+0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.jaxws.JaxWsClientProxy.invoke (JaxWsClientProxy.java:145) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0]OUT at com.sun.proxy. $ Proxy288.getConfigurations (Неизвестный источник)

#

2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT Причина: java.io.IOException: IOException вызывает https://service.com/services/Service/v1: Невозможно туннелировать через прокси.Прокси-сервер возвращает «HTTP / 1.1 407 Proxy Authentication Required» 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) 2019-05-16T11:11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0]OUT at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT в java.lang.reflect.Constructor.newInstance.java: 423) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.mapException (HTTPConduit.java:1402) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.close (HTTPConduit.java:1386) 2019-05-16T11: 11:53,76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.transport.AbstractConduit.close (AbstractConduit.java:56) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.transport.http.HTTPConduit.close (HTTPConduit.java:673) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor.handleMessage (MessageSenderInterceptor.java:63) 2019-05-16T11: 11: 53.76+0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:308) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0]OUT в org.apache.cxf.endpoint.ClientImpl.doInvoke (ClientImpl.java:531) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT в org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:440) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:355)2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.endpoint.ClientImpl.invoke (ClientImpl.java:313) 2019-05-16T11: 11: 53.76+0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.frontend.ClientProxy.invokeSync (ClientProxy.java:96) 2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT at org.apache.cxf.jaxws.JaxWsClientProxy.invoke (JaxWsClientProxy.java:140)2019-05-16T11: 11: 53.76 + 0200 [APP / PROC / WEB / 0] OUT ... 131 общих кадров опущено

1 Ответ

0 голосов
/ 16 мая 2019

Нашел решение. Я должен был установить следующий флаг:

-Djdk.http.auth.tunneling.disabledSchemes=""
...