Spring WebClient tare da Jetty: proxy na HTTP na yau da kullum ba tare da CONNECT ba
Yi amfani da mahaɗin Jetty na Spring tare da ka'idojin abokin ciniki da proxy na HTTP/1.1 masu dacewa sa'ad da ake buƙatar buƙatun HTTP da aka tura gaba.
Mai sarrafa proxy na HTTP na Reactor Netty yana kafa ramin CONNECT ko da ga manufa ta HTTP ta yau da kullum. Idan proxy ɗin da ake so ya karɓi tura gaba ta HTTP/1.1 ta yau da kullum maimakon, Spring WebClient na iya amfani da wani mahaɗi da ake tallafawa.
Domin Spring 6.2 tare da API na abokin ciniki na Jetty 12.0.35 da haɗin Jetty Reactive Streams mai dacewa:
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 da JettyClientHttpConnector azuzuwan Spring ne. Sarrafa farawa da tsayawar abokin cinikin Jetty da aka bayar ta hanyar zagayowar rayuwar aikace-aikacen ta yau da kullum.
Proxy na HTTP/1.1 na Jetty na iya tura buƙatun HTTP/1.1 ta yau da kullum ba tare da rami ba sa'ad da ka'idojin manufa da abokin ciniki-proxy suka dace. Manufarsa ta requiresTunnel tana amfani da CONNECT don manufofi masu tsaro da hanyoyin ka'ida marasa dacewa.
Wannan ba hanya ba ce ta cire CONNECT daga ramin HTTPS na yau da kullum. Ka kiyaye tsarin manufar daidai.
Yi amfani da addProxy a cikin API na Jetty da aka ambata. getProxies yana mayar da jeri da ba a iya canzawa, don haka tsohuwar girke-girken getProxies().add(...) ba ita ce hanyar canjin sa ta yanzu ba.
Don manufofin HTTP na jama'a a kan hanyar proxy ta jama'a da aka yarda, jerin proxy na HTTP yana ba da yan takara don mai masaukin proxy da tashar Jetty. Karanta ainihin amsar proxy lokacin kwatanta mahaɗa. Tabbatarwa, manufar manufa da manufar da ba ta samuwa sun kasance dabam daga zaɓin tura HTTP ko CONNECT.