កំណត់ព្រំដែនព័ត៌មានសម្ងាត់ proxy របស់ RestTemplate ជាមួយ HttpClient 5
កំណត់ព័ត៌មានសម្ងាត់ Apache HttpClient 5 ទៅកាន់ host និង port របស់ proxy មុនពេលផ្ដល់ការដឹកជញ្ជូនទៅ Spring 6 RestTemplate។
ការចូល proxy ជាកម្មសិទ្ធិរបស់អ្នកផ្ដល់ព័ត៌មានសម្ងាត់នៃការដឹកជញ្ជូន។ ជាមួយ 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 client។ ប្រើ rest ឡើងវិញសម្រាប់បន្ទុកការងារ ជាជាងបង្កើត template លំនាំដើមមួយទៀតនៅកន្លែងហៅ។
AuthScope កំណត់កន្លែងដែលព័ត៌មានសម្ងាត់នេះមានសុពលភាព។ ឧទាហរណ៍ផ្ដល់ព័ត៌មានសម្ងាត់ឈ្មោះអ្នកប្រើ/ពាក្យសម្ងាត់ធម្មតា; ឈ្មោះ BasicCredentialsProvider មិនបង្ខំឱ្យរាល់ការប្រឈមប្រើគ្រោងការ HTTP Basic ទេ។
ជាមួយគោលដៅ HTTPS ការដឹកជញ្ជូនអាចឆ្លើយតបនឹងការប្រឈមរបស់ proxy អំឡុង CONNECT មុនពេលសំណើ HTTP ដែលបានអ៊ិនគ្រីបរបស់កម្មវិធីមាន។ ឧបករណ៍ស្ទាក់ចាប់គោលដៅទូទៅដែលបន្ថែម Proxy-Authorization មិនស្មើនឹងការចរចានោះទេ។
កំណត់រចនាសម្ព័ន្ធគណនីគោលដៅណាមួយដោយឡែក។ ប្រសិនបើ proxy នៅតែបដិសេធសំណើ សូមរក្សាគ្រោងការផ្ទៀងផ្ទាត់ដែលវាប្រកាស និង host និង port ជាក់ស្តែង។ ព័ត៌មានសម្ងាត់ដែលកំណត់ចំពោះចំណុចបញ្ចប់ផ្សេងនឹងមិនត្រូវគ្នាដោយសារតែពាក្យសម្ងាត់ត្រឹមត្រូវនោះទេ។