تکراري 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 چلند له بېلګې سره توپیر ولري، ځانګړي سرلیکونه وګورئ.

اړوندې مقالې