Il-handler tal-proxy HTTP ta' Reactor Netty jistabbilixxi mina CONNECT anki għal destinazzjoni HTTP sempliċi. Jekk il-proxy maħsub jaċċetta mgħoddi HTTP/1.1 ordinarju, Spring WebClient jista' juża konnettur ieħor appoġġjat.

Għal Spring 6.2 bl-API tal-klijent ta' Jetty 12.0.35 u integrazzjoni Jetty Reactive Streams kompatibbli:

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 u JettyClientHttpConnector huma klassijiet Spring. Immaniġġja l-bidu u l-għeluq tal-klijent Jetty forniti permezz taċ-ċiklu tal-ħajja normali tal-applikazzjoni.

Il-proxy HTTP/1.1 ta' Jetty jista' jgħaddi talba HTTP/1.1 ordinarja mingħajr mina meta l-protokolli tad-destinazzjoni u tal-proxy tal-klijent jaqblu. Il-politika requiresTunnel tiegħu tuża CONNECT għal destinazzjonijiet siguri u għal mogħdijiet ta' protokoll inkompatibbli.

Dan mhuwiex mod kif tneħħi CONNECT minn mina HTTPS ordinarja. Żomm l-iskema tad-destinazzjoni korretta.

Uża addProxy fl-API Jetty msemmija. getProxies jirritorna lista li ma tistax tinbidel, għalhekk ir-riċetta l-qadima getProxies().add(...) mhijiex l-interface attwali ta' modifika tiegħu.

Għal destinazzjonijiet HTTP pubbliċi fuq rotta tal-proxy pubblika permessa, il-lista tal-proxy HTTP tforni kandidati għall-host u l-port tal-proxy Jetty. Aqra r-rispons attwali tal-proxy meta tqabbel konnetturi. L-awtentikazzjoni, il-politika tad-destinazzjoni u destinazzjoni mhux disponibbli jibqgħu separati milli tagħżel HTTP mgħoddi jew CONNECT.

Artikli relatati