Mearachdan proxy Java 407: sgrùd dearbhadh Basic airson CONNECT
Cuingealaich teisteanasan proxy Java ris a’ phrogsaidh agus sgrùd poileasaidh Basic fa leth an JDK airson tunailean HTTPS CONNECT.
Chan eil 407 a-rithist a’ ciallachadh an-còmhnaidh gun do chuir Java facal-faire ceàrr. Mar as trice cuiridh buileachadh iomraidh an JDK dearbhadh Basic dheth airson tunail HTTPS CONNECT. Faodar progsaidh a tha a’ tabhann Basic a-mhàin a dhiùltadh mus toir an callback dearbhaidh agad teisteanasan seachad.
Cuingealaich raon a’ callback teisteanasan
Ceangail Authenticator ri cliant HTTP Java agus cuingealaich ris a’ phrogsaidh rèitichte e:
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();
’S e còd rèiteachaidh cliaint a tha seo, chan e dearbhadair bunaiteach cruinneil. Atharraich seòladh nan sgrìobhainnean agus cleachd teisteanasan a chaidh a thoirt airson na seirbheis. Tha sgrùdaidhean air seòrsa an neach-iarrtais agus a’ phuing a’ cur stad air an aon callback cunntas a’ phrogsaidh a thabhann gu mì-chùramach do dhùbhlan dearbhaidh làraich-lìn.
Sgrùd dè an ìre dearbhaidh a tha a’ fàilligeadh
Tha roghainnean sgeamaichean ciorramach fa leth aig an JDK airson progsaidh HTTP àbhaisteach agus tunail CONNECT. ’S iad jdk.http.auth.proxying.disabledSchemes agus jdk.http.auth.tunneling.disabledSchemes na h-ainmean.
Mìnichidh sin carson a dh’fhaodas trafaig HTTP dearbhadh fhaighinn ach tunail HTTPS tron aon phrogsaidh fàilligeadh. Sgrùd conf/net.properties na h-àrainneachd ruith agus am poileasaidh cleachdadh, seach gabhail ris na h-aon bhun-roghainnean èifeachdach air inneal eile.
Chan e càradh progsaidh coitcheann a th’ ann a bhith a’ falmhachadh liosta sgeamaichean ciorramach gu cruinneil. Chan eil teisteanasan Basic gu progsaidh HTTP ann an teacsa lom air an dìon le ceangal TLS nas fhaide air adhart ris a’ cheann-uidhe. Sgrùd còmhdhail a’ phrogsaidh, an dòigh dearbhaidh agus am poileasaidh cleachdadh mus aontaichear ri atharrachadh.
Chan eil giùlan dearbhaidh togte clàraichte an JDK na ghealladh gun tèid taic a thoirt do gach sgeama a tha am progsaidh a’ sanasachd. Atharraichidh bann-cinn Authorization no Proxy-Authorization a bheirear le làimh sruth an dearbhadair fhèin-ghluasadach, mar sin sgrùd bannan-cinn gnàthaichte nuair a bhios an callback eadar-dhealaichte bhon eisimpleir.