Hyrja në proxy i përket ofruesit të kredencialeve të transportit. Me Spring 6 dhe Apache HttpClient 5, kufizoni atë llogari te ndërmjetësi:

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);

Aplikacioni furnizon vlerat proxyUser dhe proxyPassword dhe zotëron ciklin e jetës të klientit HTTP. Ripërdorni rest për ngarkesën e punës në vend që të ndërtoni një tjetër shabllon të paracaktuar në vendin e thirrjes.

AuthScope kufizon se ku këto kredenciale janë të vlefshme. Shembulli furnizon kredenciale të zakonshme emri përdoruesi/fjalëkalimi; emri BasicCredentialsProvider nuk detyron çdo sfidë të përdorë skemën HTTP Basic.

Me një destinacion HTTPS, transporti mund t'i përgjigjet një sfide të proxy-t gjatë CONNECT, përpara se të ekzistojë kërkesa HTTP e kriptuar e aplikacionit. Një interceptor i përgjithshëm destinacioni që shton Proxy-Authorization nuk është ekuivalent me atë negociatë.

Konfiguroni veçmas çdo llogari destinacioni. Nëse proxy vazhdon ta refuzojë kërkesën, mbani skemën e autentikimit që shpall dhe hostin e portën efektive. Një kredencial i kufizuar për një pikë tjetër fundore nuk do të përputhet vetëm sepse fjalëkalimi është i saktë.

Artikuj të ngjashëm