Proxy oturum açma, taşıyıcının kimlik bilgisi sağlayıcısına aittir. Spring 6 ve Apache HttpClient 5 için bu hesabı aracıyla sınırlayın:

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

Uygulama proxyUser ve proxyPassword değerlerini sağlar ve HTTP istemcisinin yaşam döngüsüne sahiptir. Çağrı noktasında başka bir varsayılan şablon oluşturmak yerine iş yükü için rest'i yeniden kullanın.

AuthScope bu kimlik bilgilerinin nerede geçerli olduğunu sınırlar. Örnek, sıradan kullanıcı adı/parola kimlik bilgileri sağlar; BasicCredentialsProvider adı her meydan okumanın HTTP Basic şemasını kullanmasını zorunlu kılmaz.

HTTPS hedefiyle taşıyıcı, uygulamanın şifreli HTTP isteği ortaya çıkmadan önce CONNECT sırasında proxy meydan okumasına yanıt verebilir. Proxy-Authorization ekleyen genel bir hedef ara katmanı bu görüşmeyle eşdeğer değildir.

Her hedef hesabını ayrı ayrı yapılandırın. Proxy isteği hâlâ reddediyorsa, duyurduğu kimlik doğrulama şemasını ve gerçek ana bilgisayar ile bağlantı noktasını koruyun. Başka bir uç noktaya sınırlanmış bir kimlik bilgisi yalnızca parola doğru olduğu için eşleşmez.

İlgili makaleler