Spring WebClient ৰ সৈতে Jetty: CONNECT ৰ অবিহনে সাধাৰণ HTTP প্ৰক্সি
সাধাৰণ forwarded HTTP অনুৰোধৰ প্ৰয়োজন হ'লে Spring ৰ Jetty connector মিলোৱা HTTP/1.1 client আৰু proxy প্ৰটোকলৰ সৈতে ব্যৱহাৰ কৰক।
Reactor Netty ৰ HTTP proxy handler এ সাধাৰণ HTTP গন্তব্যও CONNECT tunnel স্থাপন কৰে। যদি উদ্দেশ্যপ্ৰণোদিত proxy এ ইয়াৰ পৰিৱৰ্তে সাধাৰণ HTTP/1.1 forwarding গ্ৰহণ কৰে, তেন্তে Spring WebClient এ আন এটা সমৰ্থিত connector ব্যৱহাৰ কৰিব পাৰে।
Spring 6.2 ৰ বাবে Jetty 12.0.35 ৰ client API আৰু সুসংগত Jetty Reactive Streams integration ৰ সৈতে:
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 আৰু JettyClientHttpConnector হ'ল Spring ৰ class। যোগান ধৰা Jetty client ৰ আৰম্ভ আৰু বন্ধ application ৰ সাধাৰণ lifecycle ৰ যোগেৰে পৰিচালনা কৰক।
Jetty ৰ HTTP/1.1 proxy এ tunnel ৰ অবিহনে সাধাৰণ HTTP/1.1 অনুৰোধ forward কৰিব পাৰে যেতিয়া target আৰু client-proxy প্ৰটোকল মিলে। ইয়াৰ requiresTunnel নীতিৰে সুৰক্ষিত target আৰু অসংগত প্ৰটোকল পথৰ বাবে CONNECT ব্যৱহাৰ কৰে।
এইটো সাধাৰণ HTTPS tunnel ৰ পৰা CONNECT আঁতৰোৱাৰ উপায় নহয়। গন্তব্যৰ scheme শুদ্ধ ৰাখক।
উল্লেখিত Jetty API ত addProxy ব্যৱহাৰ কৰক। getProxies এ অপৰিৱৰ্তনীয় list ঘূৰাই দিয়ে, সেয়ে পুৰণি getProxies().add(...) recipe বৰ্তমানৰ mutation interface নহয়।
অনুমোদিত public-proxy পথত public HTTP target ৰ বাবে, HTTP proxy list এ Jetty ৰ proxy host আৰু port ৰ বাবে প্ৰাৰ্থী যোগান ধৰে। connector তুলনা কৰোঁতে প্ৰকৃত proxy response পঢ়ক। Authentication, destination policy আৰু অনুপলব্ধ target forwarded HTTP বা CONNECT বাছনিৰ পৰা পৃথক।