De HTTP-proxyhandler fan Reactor Netty makket in CONNECT-tunnel sels foar in gewoan HTTP-doel. As de bedoelde proxy ynstee gewoane HTTP/1.1-trochstjoering akseptearret, kin Spring WebClient in oare stipe connector brûke.

Foar Spring 6.2 mei de kliïnt-API fan Jetty 12.0.35 en in kompatibele Jetty Reactive Streams-yntergraasje:

var jetty = new org.eclipse.jetty.client.HttpClient(
    new org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP());
jetty.getProxyConfiguration().addProxy(
    new org.eclipse.jetty.client.HttpProxy("proxy.example", 8080));

var client = WebClient.builder()
    .clientConnector(new JettyClientHttpConnector(jetty))
    .build();

WebClient en JettyClientHttpConnector binne Spring-klassen. Behear it starten en stopjen fan de levere Jetty-klant fia de normale libbenssyklus fan de applikaasje.

De HTTP/1.1-proxy fan Jetty kin in gewoane HTTP/1.1-oanfraach trochstjoere sûnder tunnel as de protokollen fan it doel en de klant-proxy oerienkomme. It requiresTunnel-belied brûkt CONNECT foar befeilige doelen en foar ynkompatible protokolpaden.

Dit is gjin manier om CONNECT út in gewoane HTTPS-tunnel te ferwiderjen. Hâld it skema fan it doel korrekt.

Brûk addProxy yn de neamde Jetty-API. getProxies jout in net-wizige list werom, dus it âldere resept getProxies().add(...) is net syn hjoeddeistige mutaasje-ynterface.

Foar iepenbiere HTTP-doelen op in tastiene iepenbiere proxy-route leveret de HTTP-proxylist kandidaten foar de proxyhost en -poart fan Jetty. Lês de werklike proxy-antwurd as jo connectors fergelykje. Autentikaasje, doelbelied en in net beskikber doel bliuwe los fan de kar tusken trochstjoerd HTTP en CONNECT.

Relatearre artikelen