Spring WebClient z Jetty: običajno HTTP posredovanje brez CONNECT
Uporabite priključek Jetty iz Springa z usklajenima protokoloma HTTP/1.1 odjemalca in posrednika, ko je potrebna običajna posredovana zahteva HTTP.
Upravljalnik HTTP posrednika v Reactor Netty vzpostavi tunel CONNECT tudi za običajen cilj HTTP. Če predvideni posrednik sprejema običajno posredovanje HTTP/1.1, lahko Spring WebClient uporabi drug podprt priključek.
Za Spring 6.2 z odjemalskim API-jem Jetty 12.0.35 in združljivo integracijo Jetty Reactive Streams:
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 in JettyClientHttpConnector sta razreda Springa. Upravljajte zagon in zaustavitev priloženega odjemalca Jetty skozi običajen življenjski cikel aplikacije.
Posrednik HTTP/1.1 v Jetty lahko posreduje običajno zahtevo HTTP/1.1 brez tunela, ko se protokola cilja in odjemalskega posrednika ujemata. Njegova politika requiresTunnel uporablja CONNECT za varne cilje in nezdružljive poti protokola.
To ni način za odstranitev CONNECT iz običajnega tunela HTTPS. Ohranite pravilno shemo cilja.
V navedenem API-ju Jetty uporabite addProxy. getProxies vrne nespremenljiv seznam, zato starejši recept getProxies().add(...) ni njegov trenutni vmesnik za spreminjanje.
Za javne cilje HTTP na dovoljeni javni poti posrednika seznam posrednikov HTTP ponuja kandidate za gostitelja in vrata posrednika Jetty. Pri primerjanju priključkov preberite dejanski odgovor posrednika. Preverjanje pristnosti, politika cilja in nedosegljiv cilj ostanejo ločeni od izbire posredovanega HTTP ali CONNECT.