Reactor Netty HTTP-puhverserveri haldur loob CONNECT-tunneli ka tavalise HTTP-sihtkoha jaoks. Kui kavandatud puhverserver aktsepteerib hoopis tavalist HTTP/1.1 edastust, saab Spring WebClient kasutada teist toetatud pistikut.

Spring 6.2 jaoks Jetty 12.0.35 kliendi API ja ühilduva Jetty Reactive Streams integratsiooniga:

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 ja JettyClientHttpConnector on Springi klassid. Halda etteantud Jetty kliendi käivitamist ja peatamist rakenduse tavapärase elutsükli kaudu.

Jetty HTTP/1.1 puhverserver saab edastada tavalist HTTP/1.1 päringut ilma tunnelita, kui sihtkoha ja kliendi-puhverserveri protokollid kattuvad. Selle requiresTunnel-poliitika kasutab CONNECT-i turvaliste sihtkohtade ja ühildumatute protokolliteede jaoks.

See ei ole viis CONNECT-i eemaldamiseks tavalisest HTTPS-tunnelist. Hoidke sihtkoha skeem õige.

Kasutage addProxy näidatud Jetty API-s. getProxies tagastab muutmatu loendi, seega vanem retsept getProxies().add(...) ei ole selle praegune muutmislides.

Avalike HTTP-sihtkohtade jaoks lubatud avalikul puhverserveri marsruudil pakub HTTP-puhverserverite loend kandidaate Jetty puhverserveri hosti ja pordi jaoks. Võrreldes pistikuid lugege tegelikku puhverserveri vastust. Autentimine, sihtkoha poliitika ja kättesaamatu sihtkoht jäävad edastatud HTTP ja CONNECT-i valikust eraldi.

Seotud artiklid