ຈຳກັດຂອບເຂດຂໍ້ມູນຢືນຢັນ 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 ມາໃຊ້ຄືນສຳລັບພາລະວຽກ ແທນການສ້າງແມ່ແບບເລີ່ມຕົ້ນອີກອັນໜຶ່ງຢູ່ຈຸດເອີ້ນ.
AuthScope ຈຳກັດວ່າຂໍ້ມູນຢືນຢັນນີ້ໃຊ້ໄດ້ຢູ່ໃສ. ຕົວຢ່າງສະໜອງຂໍ້ມູນຢືນຢັນຊື່ຜູ້ໃຊ້/ລະຫັດຜ່ານທຳມະດາ; ຊື່ BasicCredentialsProvider ບໍ່ໄດ້ບັງຄັບໃຫ້ທຸກການທ້າທາຍໃຊ້ຮູບແບບ HTTP Basic.
ກັບປາຍທາງ HTTPS, ການເຊື່ອມຕໍ່ສາມາດຕອບການທ້າທາຍຂອງ proxy ໃນລະຫວ່າງ CONNECT, ກ່ອນຄຳຮ້ອງ HTTP ທີ່ເຂົ້າລະຫັດຂອງແອັບພລິເຄຊັນຈະມີຢູ່. ຕົວດັກຈັບປາຍທາງທົ່ວໄປທີ່ເພີ່ມ Proxy-Authorization ບໍ່ທຽບເທົ່າກັບການເຈລະຈານັ້ນ.
ຕັ້ງຄ່າບັນຊີປາຍທາງໃດໆແຍກຕ່າງຫາກ. ຖ້າ proxy ຍັງປະຕິເສດຄຳຮ້ອງ, ໃຫ້ເກັບຮູບແບບການຢືນຢັນທີ່ມັນປະກາດ ແລະ host ກັບ port ທີ່ໃຊ້ຈິງ. ຂໍ້ມູນຢືນຢັນທີ່ຈຳກັດສຳລັບປາຍທາງອື່ນຈະບໍ່ກົງກັນພຽງເພາະລະຫັດຜ່ານຖືກຕ້ອງ.