ተደጋጋሚ 407 ሁልጊዜ Java የተሳሳተ የይለፍ ቃል ላከ ማለት አይደለም። የJDK ማጣቀሻ ትግበራ በመደበኛነት ለHTTPS CONNECT ዋሻዎች Basic ማረጋገጫን ያሰናክላል። Basic ብቻ የሚያቀርብ ፕሮክሲ የማረጋገጫ callback መግቢያ መረጃ ከማቅረቡ በፊት ሊከለከል ይችላል።

የመግቢያ መረጃ callback ወሰንን ይገድቡ

Authenticator ከJava HTTP ደንበኛ ጋር ያያይዙና በተዋቀረው ፕሮክሲ ብቻ ይገድቡት፦

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 ከምሳሌው በተለየ ሁኔታ ሲሠራ ብጁ ራስጌዎችን ይፈትሹ።

ተዛማጅ ጽሑፎች