0

我正在使用来自 REST 端点的数据,路由中间有一个代理。我正在本地运行 CNTLM (localhost:3128):它将在公司代理上为我进行身份验证,因此我不需要传递我的凭据。

尽管进行了多次尝试,但我一直无法让我的休息电话上班。例如,得到:

  • SSLException:无法识别的 SSL 消息
  • 连接握手突然终止
  • 连接重置
  • 你的名字,得到它

下面做了很多尝试的最简单的版本。显然(来自互联网阅读),这应该有效,但事实并非如此。

Camel 应该如何配置,尤其是 camel-http ?

注意:我调用的 REST API 使用的是 HTTPS,但不需要证书。当不涉及代理时,该代码在我的本地计算机上工作。在有代理的内网上失败

@Component
public class MyRoute extends RouteBuilder

    public void configure() throws Exception {

        //Tried different way to set the proxy, including inline with toD(...)
        System.setProperty("https.proxyHost", "localhost");
        System.setProperty("https.proxyPort", "3128");
        getCamelContext().getGlobalOptions().put("http.proxyHost", "localhost");
        getCamelContext().getGlobalOptions().put("https.proxyPort", "3128");
        getContext().getGlobalOptions().put("https.proxyHost", "localhost");
        getContext().getGlobalOptions().put("https.proxyPort", "3128");

        from("timer:credentials?repeatCount=1")
        .setHeader(Exchange.HTTP_METHOD, constant("POST"))
        .setBody(simple(jsonAuth))
        .to(baseUrlApi +"/v1/auth/tokens/?bridgeEndpoint=true")
        .unmarshal().json(JsonLibrary.Jackson, AuthResponseDto.class)
        .setHeader("Authorization", simple("Bearer ${body.data.accessToken.token}"))
        // etc..

    }
}
4

0 回答 0