La HTTP-prokza traktilo de Reactor Netty starigas CONNECT-tunelon eĉ por ordinara HTTP-celo. Se la celata prokso akceptas anstataŭe ordinaran HTTP/1.1-plusendadon, Spring WebClient povas uzi alian subtenatan konektilon.

Por Spring 6.2 kun la klienta API de Jetty 12.0.35 kaj kongrua Jetty Reactive Streams-integraĵo:

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 kaj JettyClientHttpConnector estas Spring-klasoj. Administru la startigon kaj haltigon de la provizita Jetty-kliento per la normala vivociklo de la aplikaĵo.

La HTTP/1.1-prokso de Jetty povas plusendi ordinaran HTTP/1.1-peton sen tunelo, kiam la protokoloj de celo kaj klienta prokso kongruas. Ĝia requiresTunnel-politiko uzas CONNECT por sekuraj celoj kaj por nekompatiblaj protokolaj vojoj.

Ĉi tio ne estas maniero forigi CONNECT el ordinara HTTPS-tunelo. Konservu la skemon de la celo ĝusta.

Uzu addProxy en la indikita Jetty-API. getProxies redonas neŝanĝeblan liston, do la pli malnova recepto getProxies().add(...) ne estas ĝia nuna modifa interfaco.

Por publikaj HTTP-celoj sur permesita publika proksa vojo, la HTTP-proksa listo provizas kandidatojn por la proksa gastiganto kaj pordo de Jetty. Legu la faktan proksan respondon kiam vi komparas konektilojn. Aŭtentigo, cela politiko kaj neatingebla celo restas apartaj de la elekto inter plusendita HTTP kaj CONNECT.

Rilataj artikoloj