د Java پراکسي 407 تېروتنې: د CONNECT لپاره Basic تصدیق وګورئ
د Java د ننوتلو معلومات اړوندې پراکسي ته محدود کړئ او د HTTPS CONNECT تونلونو لپاره د JDK جلا Basic تصدیق تګلاره وګورئ.
تکراري 407 تل دا معنا نه لري چې Java ناسم پټنوم لېږلی دی. د JDK مرجع پلي کول عموماً د HTTPS CONNECT تونلونو لپاره Basic تصدیق بندوي. هغه پراکسي چې یوازې Basic وړاندې کوي، ښايي ستاسو د تصدیق callback د ننوتلو معلوماتو تر وړاندې کولو مخکې رد شي.
د ننوتلو معلوماتو د callback ساحه محدوده وساتئ
له Java HTTP پېرودونکي سره Authenticator ونښلوئ او په تنظیم شوې پراکسي یې محدود کړئ:
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();
دا د یوه پېرودونکي د چمتو کولو کوډ دی، سراسري اصلي تصدیقوونکی نه دی. د اسنادو پته بدله کړئ او هغه د ننوتلو معلومات وکاروئ چې په رښتیا د همدې خدمت لپاره ورکړل شوي دي. د غوښتونکي د ډول او پای ټکي کتنې مخه نیسي چې هماغه callback د ویبپاڼې د تصدیق غوښتنې په ځواب کې بېاحتیاطه د پراکسي حساب وړاندې کړي.
وګورئ چې د تصدیق کوم پړاو ناکامېږي
JDK د عادي HTTP پراکسي ترافیک او CONNECT تونلونو لپاره د بندو تصدیق لارو جلا تنظیمات لري. اړوند نومونه jdk.http.auth.proxying.disabledSchemes او jdk.http.auth.tunneling.disabledSchemes دي.
دا روښانوي چې ولې د HTTP ترافیک تصدیق بریالی کېدای شي، خو د هماغې پراکسي له لارې HTTPS تونل ناکام شي. د دې پر ځای چې په بل ماشین کې هم د هماغو اغېزمنو اصلي ارزښتونو اټکل وکړئ، د چلولو چاپېریال conf/net.properties او د ځای پر ځای کولو تګلاره وګورئ.
د بندو لارو لېست په سراسري ډول تشول د پراکسي عمومي حل نه دی. نا کوډ شوې HTTP پراکسي ته لېږل شوي Basic د ننوتلو معلومات له موخې سره د وروسته جوړېدونکي TLS پیوستون له خوا نه خوندي کېږي. د بدلون له منلو مخکې د پراکسي لېږد، د تصدیق طریقه او د ځای پر ځای کولو تګلاره وارزوئ.
د JDK د جوړښتي تصدیق مستند چلند هم د پراکسي له خوا د اعلان شوې هرې لارې د ملاتړ ژمنه نه ده. په لاس ورکړل شوی Authorization یا Proxy-Authorization سرلیک د اتومات تصدیقوونکي بهیر بدلوي؛ نو کله چې د callback چلند له بېلګې سره توپیر ولري، ځانګړي سرلیکونه وګورئ.