Earráidí proxy Java 407: seiceáil fíordheimhniú Basic do CONNECT
Teorannaigh dintiúir proxy Java don seachfhreastalaí agus seiceáil beartas ar leith Basic an JDK do tholláin HTTPS CONNECT.
Ní chiallaíonn 407 arís agus arís eile i gcónaí gur sheol Java pasfhocal mícheart. De ghnáth díchumasaíonn cur chun feidhme tagartha an JDK fíordheimhniú Basic do thollánú HTTPS CONNECT. Féadfar seachfhreastalaí nach dtairgeann ach Basic a dhiúltú sula soláthraíonn do callback fíordheimhnithe dintiúir.
Coinnigh raon teoranta ar an callback dintiúr
Ceangail Authenticator leis an gcliant HTTP Java agus teorannaigh don seachfhreastalaí cumraithe é:
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();
Is cód socraithe do chliant é seo, ní fíordheimhnitheoir domhanda réamhshocraithe. Athraigh an seoladh doiciméadúcháin agus úsáid dintiúir a tugadh don tseirbhís sin i ndáiríre. Cuireann seiceálacha cineál iarrthóra agus críochphointe cosc ar an callback céanna an cuntas proxy a thairiscint go míchúramach do dhúshlán fíordheimhnithe láithreáin.
Seiceáil cén chéim fíordheimhnithe atá ag teip
Tá socruithe scéimeanna díchumasaithe ar leith ag an JDK do ghnáthproxy HTTP agus do thollánú CONNECT. Is iad jdk.http.auth.proxying.disabledSchemes agus jdk.http.auth.tunneling.disabledSchemes na hainmneacha.
Míníonn sé sin cén fáth ar féidir trácht HTTP a fhíordheimhniú agus tollán HTTPS tríd an proxy céanna ag teip. Seiceáil conf/net.properties na timpeallachta rite agus an beartas imscartha seachas glacadh leis na réamhshocruithe éifeachtacha céanna ar mheaisín eile.
Ní deisiú ginearálta proxy é liosta scéimeanna díchumasaithe a ghlanadh go domhanda. Ní chosnaíonn an ceangal TLS níos déanaí leis an gceann scríbe dintiúir Basic a sheoltar chuig proxy HTTP i ngnáth-théacs. Athbhreithnigh iompar an tseachfhreastalaí, an modh fíordheimhnithe agus an beartas imscartha sula gceadaítear athrú.
Ní gealltanas tacaíochta do gach scéim a fhógraíonn proxy é iompar fíordheimhnithe ionsuite doiciméadaithe an JDK ach oiread. Athraíonn ceanntásc Authorization nó Proxy-Authorization a thugtar de láimh sreabhadh an fhíordheimhnitheora uathoibríoch; scrúdaigh ceanntásca saincheaptha má iompraíonn an callback difriúil ón sampla.