HttpClient 5 көмегімен RestTemplate прокси тіркелгі деректерін шектеу
Apache HttpClient 5 тіркелгі деректерін тасымалды Spring 6 RestTemplate-ке бермес бұрын прокси хост пен портына шектеңіз.
Проксиге кіру тасымалдың тіркелгі деректерін жеткізушіге жатады. 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 мақсаты болса, тасымал CONNECT кезінде прокси шақырысына жауап бере алады, қолданбаның шифрланған HTTP сұранысы пайда болмай тұрып. Proxy-Authorization қосатын жалпы мақсатты интерцептор бұл келіссөзге тең емес.
Кез келген мақсатты тіркелгіні бөлек конфигурациялаңыз. Прокси сұранысты әлі де қабылдамаса, оның жариялаған аутентификация схемасын және нақты хост пен портты сақтаңыз. Басқа соңғы нүктеге шектелген тіркелгі деректері тек құпия сөз дұрыс болғандықтан сәйкес келмейді.