Reactor Netty ഉപയോഗിച്ച് Spring WebClient പ്രോക്സി കോൺഫിഗർ ചെയ്യുക
WebClient-ന്റെ കണക്ടർ വഴി പ്രോക്സി കോൺഫിഗർ ചെയ്ത Reactor Netty ക്ലയന്റ് നൽകുകയും അതിന്റെ CONNECT അടിസ്ഥാനമാക്കിയ പ്രവർത്തനം കണക്കിലെടുക്കുകയും ചെയ്യുക.
HttpClient httpClient = HttpClient.create()
.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
.host("203.0.113.10").port(8080));
WebClient client = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
ഈ വിളിക്കായി ഈ WebClient ഉപയോഗിക്കുക. അനുവദനീയമായ പൊതു പ്രോക്സി റൂട്ടിലുള്ള പൊതു സേവനങ്ങൾക്ക്, HTTP പ്രോക്സി ലിസ്റ്റ് host, port സ്ഥാനാർത്ഥികൾ നൽകുന്നു; യഥാർത്ഥ ലക്ഷ്യസ്ഥാനത്തേക്കുള്ള CONNECT പ്രവേശനം സ്ഥിരീകരിക്കുക. HttpClient/ProxyProvider എന്നീ തരങ്ങൾ Reactor Netty-യുടേതാണ്, Java-യുടെ സ്റ്റാൻഡേർഡ് ക്ലയന്റിന്റേതല്ല. മറ്റൊരു ഇൻജക്ട് ചെയ്ത WebClient-ന് മറ്റൊരു കണക്ടർ നിലനിർത്താം.
Reactor Netty-യുടെ രേഖപ്പെടുത്തിയ Netty HTTP പ്രോക്സി പാത, ലക്ഷ്യസ്ഥാനത്തിന്റെ സ്കീം പരിഗണിക്കാതെ CONNECT ഉപയോഗിക്കുന്നു. അതിനാൽ ഒരു സാധാരണ HTTP ലക്ഷ്യത്തിന് അതിന്റെ port-ലേക്ക് ടണൽ അനുമതി ആവശ്യമായി വന്നേക്കാം, പ്രോക്സി അവിടെ സാധാരണ ഫോർവേഡ് ചെയ്ത HTTP സ്വീകരിക്കുന്നുണ്ടെങ്കിലും. URL-ന്റെ സ്കീം മാറ്റുന്നതിന് മുമ്പ് യഥാർത്ഥ പ്രോക്സി പ്രതികരണം വായിക്കുക. സാധാരണ HTTP/1.1 ഫോർവേഡിംഗ് ആവശ്യമുള്ള അനുയോജ്യമായ Spring 6.2 വിന്യാസത്തിന്, Jetty 12.0.35 കണക്ടർ ഉദാഹരണം ആ ബദൽ നൽകുന്നു.
JVM പ്രോപ്പർട്ടി റൂട്ടിംഗിനായി, Reactor Netty-യുടെ രേഖപ്പെടുത്തിയ opt-in കോൺഫിഗറേഷൻ തിരഞ്ഞെടുക്കുക. JVM-ൽ നിലവിലുള്ള ഒരു പ്രോപ്പർട്ടി എല്ലാ കണക്ടറുകളെയും കോൺഫിഗർ ചെയ്യുന്നില്ല.
പ്രോക്സി സെറ്റപ്പ്/ഓതന്റിക്കേഷൻ, ലക്ഷ്യസ്ഥാനത്തിന്റെ TLS, ആപ്ലിക്കേഷൻ പ്രതികരണങ്ങൾ എന്നിവ വേർതിരിച്ച് സൂക്ഷിക്കുക. കണക്ടർ റൂട്ട് നൽകുന്നു, ലക്ഷ്യസ്ഥാനത്തിന്റെ ക്രെഡൻഷ്യലുകളോ പ്രോട്ടോക്കോൾ ഫലമോ അല്ല.