HttpClient 5 ഉപയോഗിച്ച് RestTemplate പ്രോക്സി ക്രെഡൻഷ്യലുകൾ പരിധിനിർണ്ണയം ചെയ്യുക
Spring 6 RestTemplate-ന് ട്രാൻസ്പോർട്ട് നൽകുന്നതിന് മുമ്പ് Apache HttpClient 5 ക്രെഡൻഷ്യലുകൾ പ്രോക്സി ഹോസ്റ്റിലേക്കും പോർട്ടിലേക്കും പരിമിതപ്പെടുത്തുക.
പ്രോക്സി ലോഗിൻ ട്രാൻസ്പോർട്ടിന്റെ ക്രെഡൻഷ്യൽ ദാതാവിനുള്ളതാണ്. Spring 6-ഉം Apache HttpClient 5-ഉം ഉപയോഗിക്കുമ്പോൾ, ആ അക്കൗണ്ട് ഇടനിലക്കാരനിലേക്ക് പരിമിതപ്പെടുത്തുക:
var proxy = new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080);
var credentials = new org.apache.hc.client5.http.impl.auth
.BasicCredentialsProvider();
credentials.setCredentials(
new org.apache.hc.client5.http.auth.AuthScope(proxy),
new org.apache.hc.client5.http.auth.UsernamePasswordCredentials(
proxyUser, proxyPassword.toCharArray()));
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(proxy)
.setDefaultCredentialsProvider(credentials)
.build();
var factory = new org.springframework.http.client
.HttpComponentsClientHttpRequestFactory(http);
var rest = new org.springframework.web.client.RestTemplate(factory);ആപ്ലിക്കേഷൻ proxyUser, proxyPassword മൂല്യങ്ങൾ നൽകുകയും HTTP ക്ലയന്റിന്റെ ജീവിതചക്രം സ്വന്തമാക്കുകയും ചെയ്യുന്നു. കോൾ ലൊക്കേഷനിൽ മറ്റൊരു ഡിഫോൾട്ട് ടെംപ്ലേറ്റ് നിർമ്മിക്കുന്നതിനുപകരം ജോലിഭാരത്തിന് rest വീണ്ടും ഉപയോഗിക്കുക.
ഈ ക്രെഡൻഷ്യലുകൾ എവിടെ സാധുവാണെന്ന് AuthScope പരിമിതപ്പെടുത്തുന്നു. ഉദാഹരണം സാധാരണ ഉപയോക്തൃനാമം/പാസ്വേഡ് ക്രെഡൻഷ്യലുകൾ നൽകുന്നു; BasicCredentialsProvider എന്ന പേര് ഓരോ വെല്ലുവിളിയും HTTP Basic സ്കീം ഉപയോഗിക്കാൻ നിർബന്ധിക്കുന്നില്ല.
HTTPS ലക്ഷ്യസ്ഥാനത്തോടെ, ആപ്ലിക്കേഷന്റെ എൻക്രിപ്റ്റ് ചെയ്ത HTTP അഭ്യർത്ഥന നിലവിലുകാകും മുമ്പ്, CONNECT സമയത്ത് പ്രോക്സി വെല്ലുവിളിക്ക് ട്രാൻസ്പോർട്ടിന് മറുപടി നൽകാം. Proxy-Authorization ചേർക്കുന്ന പൊതു ലക്ഷ്യ ഇന്റർസെപ്റ്റർ ആ ചർച്ചയ്ക്ക് തുല്യമല്ല.
ഏതെങ്കിലും ലക്ഷ്യ അക്കൗണ്ട് വെവ്വേറെ കോൺഫിഗർ ചെയ്യുക. പ്രോക്സി ഇപ്പോഴും അഭ്യർത്ഥന നിരസിക്കുന്നുവെങ്കിൽ, അത് പ്രഖ്യാപിക്കുന്ന പ്രമാണീകരണ സ്കീമും യഥാർത്ഥ ഹോസ്റ്റും പോർട്ടും നിലനിർത്തുക. മറ്റൊരു എൻഡ്പോയിന്റിനായി പരിമിതപ്പെടുത്തിയ ക്രെഡൻഷ്യൽ പാസ്വേഡ് ശരിയായതുകൊണ്ട് മാത്രം പൊരുത്തപ്പെടില്ല.