Spring WebClient உடன் Jetty: CONNECT இல்லாத சாதாரண HTTP ப்ராக்சி
சாதாரணமாக அனுப்பப்படும் HTTP கோரிக்கை தேவைப்படும்போது பொருந்தும் HTTP/1.1 கிளையண்ட் மற்றும் ப்ராக்சி நெறிமுறைகளுடன் Spring இன் Jetty இணைப்பியைப் பயன்படுத்தவும்.
Reactor Netty இன் HTTP ப்ராக்சி கையாளி சாதாரண HTTP இலக்குக்கும் CONNECT சுரங்கத்தை உருவாக்குகிறது. நோக்கமிடப்பட்ட ப்ராக்சி சாதாரண HTTP/1.1 அனுப்பலை ஏற்றுக்கொண்டால், Spring WebClient மற்றொரு ஆதரவு இணைப்பியைப் பயன்படுத்தலாம்.
Spring 6.2 உடன் Jetty 12.0.35 இன் கிளையண்ட் API மற்றும் இணக்கமான 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 மற்றும் JettyClientHttpConnector ஆகியவை Spring வகுப்புகள். வழங்கப்பட்ட Jetty கிளையண்டின் தொடக்கம் மற்றும் நிறுத்தத்தை பயன்பாட்டின் சாதாரண வாழ்க்கைச் சுழற்சி வழியாக நிர்வகிக்கவும்.
இலக்கு மற்றும் கிளையண்ட்-ப்ராக்சி நெறிமுறைகள் பொருந்தும்போது Jetty இன் HTTP/1.1 ப்ராக்சி சுரங்கம் இல்லாமல் சாதாரண HTTP/1.1 கோரிக்கையை அனுப்ப முடியும். அதன் requiresTunnel கொள்கை பாதுகாப்பான இலக்குகளுக்கும் பொருந்தாத நெறிமுறை பாதைகளுக்கும் CONNECT ஐப் பயன்படுத்துகிறது.
சாதாரண HTTPS சுரங்கத்திலிருந்து CONNECT ஐ நீக்கும் வழி இதுவல்ல. இலக்கின் scheme சரியாக வைத்திருக்கவும்.
குறிப்பிட்ட Jetty API இல் addProxy பயன்படுத்தவும். getProxies மாற்ற முடியாத பட்டியலைத் திருப்பித் தருகிறது, எனவே பழைய getProxies().add(...) முறை அதன் தற்போதைய மாற்று இடைமுகம் அல்ல.
அனுமதிக்கப்பட்ட பொது ப்ராக்சி வழியில் உள்ள பொது HTTP இலக்குகளுக்கு, HTTP ப்ராக்சி பட்டியல் Jetty ப்ராக்சியின் host மற்றும் port க்கு வேட்பாளர்களை வழங்குகிறது. இணைப்பிகளை ஒப்பிடும்போது உண்மையான ப்ராக்சி பதிலைப் படிக்கவும். அங்கீகாரம், இலக்கு கொள்கை மற்றும் கிடைக்காத இலக்கு ஆகியவை அனுப்பப்படும் HTTP அல்லது CONNECT தேர்விலிருந்து தனியாக இருக்கும்.