Log masuk proksi tergolong dalam pembekal kelayakan pengangkutan. Untuk Spring 6 dengan Apache HttpClient 5, hadkan akaun itu kepada perantara:

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

Aplikasi membekalkan nilai proxyUser dan proxyPassword serta memiliki kitaran hayat klien HTTP. Guna semula rest untuk beban kerja dan bukannya membina templat lalai lain di tempat panggilan.

AuthScope mengehadkan tempat kelayakan ini sah. Contoh membekalkan kelayakan nama pengguna/kata laluan biasa; nama BasicCredentialsProvider tidak memaksa setiap cabaran menggunakan skema HTTP Basic.

Dengan destinasi HTTPS, pengangkutan boleh menjawab cabaran proksi semasa CONNECT, sebelum permintaan HTTP penyulitan aplikasi wujud. Pemintas destinasi generik yang menambah Proxy-Authorization tidak setara dengan rundingan itu.

Konfigurasikan mana-mana akaun destinasi secara berasingan. Jika proksi masih menolak permintaan, kekalkan skema pengesahan yang diumumkannya serta hos dan port berkesan. Kelayakan yang dihadkan kepada titik akhir lain tidak akan sepadan hanya kerana kata laluan itu betul.

Artikel berkaitan