Endurtikið 407 merkir ikki altíð, at Java sendi skeivt loyniorð. Tilvísingarútgávan av JDK óvirkjar vanliga Basic-váttan fyri HTTPS CONNECT-tunlar. Ein proxy, sum bert bjóðar Basic, kann verða avvíst, áðrenn váttanarafturkallið gevur innritingarupplýsingar.

Avmarka afturkallið til innritingarupplýsingar

Knýt ein Authenticator at Java HTTP-klientinum og avmarka hann til uppsettu proxyina:

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

Hetta er uppsetingarkota fyri ein klient, ikki ein globalur standardváttari. Skift dokumentatiónsadressuna út og brúka innritingarupplýsingar, sum veruliga eru givnar til tænastuna. Kanning av umbíðaratypu og endapunkti forðar sama afturkalli at bjóða proxy-kontuna óumhugsað til eina innritingaravbjóðing frá einum vevstaði.

Kanna, hvat váttanarstig miseydnast

JDK hevur serstakar stillingar fyri óvirkjar hættir til vanliga HTTP-proxy-nýtslu og CONNECT-tunlar. Nøvnini eru jdk.http.auth.proxying.disabledSchemes og jdk.http.auth.tunneling.disabledSchemes.

Hetta greiðir frá, hví HTTP-ferðsla kann váttast, meðan ein HTTPS-tunnil gjøgnum somu proxy miseydnast. Kanna conf/net.properties í koyriumhvørvinum og útleggingarreglurnar heldur enn at rokna við somu virknu standardvirðum á einari aðrari teldu.

At tøma ein lista við óvirkjum hættum globalt er ikki ein almenn proxy-umvæling. Basic-upplýsingar sendar til eina HTTP-proxy í greiðum teksti verða ikki vardar av seinna TLS-sambandinum til málið. Met um proxy-flutningin, váttanarháttin og útleggingarreglurnar, áðrenn ein broyting verður góðkend.

Skjalfesta innbygda váttanaratburðið hjá JDK er heldur ikki eitt lyfti um stuðul til hvønn hátt, sum proxyin lýsir. Ein manuelt givin Authorization- ella Proxy-Authorization-header broytir sjálvvirknu váttanargongdina, so kanna serstakar headarar, tá afturkallið virkar øðrvísi enn dømið.

Skyldar greinar