Żbalji 407 tal-proxy f’Java: iċċekkja l-awtentikazzjoni Basic għal CONNECT
Illimita l-kredenzjali Java għall-proxy u ċċekkja l-politika separata tal-JDK dwar Basic għall-mini HTTPS CONNECT.
407 ripetut mhux dejjem ifisser li Java bagħtet password ħażina. L-implimentazzjoni ta’ referenza tal-JDK normalment tiddiżattiva l-awtentikazzjoni Basic għall-mini HTTPS CONNECT. Proxy li joffri biss Basic jista’ jiġi rrifjutat qabel ma l-callback tal-awtentikazzjoni jipprovdi l-kredenzjali.
Illimita l-ambitu tal-callback tal-kredenzjali
Waħħal Authenticator mal-klijent HTTP Java u llimitah għall-proxy kkonfigurat:
String proxyHost = "203.0.113.10";
int proxyPort = 8080;
String password = System.getenv("PROXY_PASSWORD");
if (password == null) {
throw new IllegalStateException("Set PROXY_PASSWORD");
}
java.net.Authenticator auth = new java.net.Authenticator() {
@Override
protected java.net.PasswordAuthentication getPasswordAuthentication() {
if (getRequestorType() == RequestorType.PROXY
&& proxyHost.equals(getRequestingHost())
&& proxyPort == getRequestingPort()) {
return new java.net.PasswordAuthentication(
"proxy-user", password.toCharArray());
}
return null;
}
};
java.net.http.HttpClient client = java.net.http.HttpClient.newBuilder()
.proxy(java.net.ProxySelector.of(
new java.net.InetSocketAddress(proxyHost, proxyPort)))
.authenticator(auth)
.connectTimeout(java.time.Duration.ofSeconds(5))
.build();
Dan huwa kodiċi ta’ konfigurazzjoni għal klijent, mhux awtentikatur globali predefinit. Ibdel l-indirizz tad-dokumentazzjoni u uża kredenzjali li fil-fatt ingħataw għal dak is-servizz. Il-kontrolli tat-tip ta’ min jagħmel it-talba u tal-punt tat-tmiem jipprevjenu lill-istess callback milli joffri bla ħsieb il-kont tal-proxy lil sfida ta’ awtentikazzjoni minn sit web.
Iċċekkja liema stadju tal-awtentikazzjoni qed ifalli
Il-JDK għandu settings separati tal-iskemi diżattivati għal HTTP ordinarju permezz ta’ proxy u għall-mini CONNECT. L-ismijiet rilevanti huma jdk.http.auth.proxying.disabledSchemes u jdk.http.auth.tunneling.disabledSchemes.
Dan jispjega għaliex it-traffiku HTTP jista’ jawtentika filwaqt li mina HTTPS mill-istess proxy tfalli. Iċċekkja conf/net.properties tal-ambjent ta’ eżekuzzjoni u l-politika tal-iskjerament minflok tassumi li magna oħra għandha l-istess valuri predefiniti effettivi.
Li tbattal globalment lista ta’ skemi diżattivati mhuwiex rimedju ġenerali għall-proxy. Il-kredenzjali Basic mibgħuta lil proxy HTTP b’test ċar ma jkunux protetti mill-konnessjoni TLS li ssir aktar tard mad-destinazzjoni. Irrevedi t-trasport tal-proxy, il-metodu tal-awtentikazzjoni u l-politika tal-iskjerament qabel tapprova bidla.
L-imġiba dokumentata tal-awtentikazzjoni integrata fil-JDK lanqas ma twiegħed appoġġ għal kull skema li jħabbar proxy. Header Authorization jew Proxy-Authorization ipprovdut manwalment ibiddel il-fluss tal-awtentikatur awtomatiku, għalhekk spezzjona l-headers personalizzati meta l-callback iġib ruħu differenti mill-eżempju.