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 එක වෙබ් අඩවියක සත්යාපන අභියෝගයකට නොසැලකිලිමත්ව ප්රොක්සි ගිණුම ලබා දීම වැළකේ.
අසාර්ථක වන සත්යාපන අදියර පරීක්ෂා කරන්න
සාමාන්ය HTTP ප්රොක්සි ගමනාගමනය සහ CONNECT උමං සඳහා අක්රිය කළ සත්යාපන ක්රමවල වෙන වෙනම සැකසුම් JDK සතුව ඇත. අදාළ නම් jdk.http.auth.proxying.disabledSchemes සහ jdk.http.auth.tunneling.disabledSchemes වේ.
එබැවින් HTTP ගමනාගමනය සත්යාපනය වුවද එම ප්රොක්සිය හරහා HTTPS උමඟ අසාර්ථක විය හැක. වෙනත් පරිගණකයකත් එකම ඵලදායී පෙරනිමි අගයන් ඇතැයි නොසිතා ධාවන පරිසරයේ conf/net.properties සහ යෙදවීමේ ප්රතිපත්තිය පරීක්ෂා කරන්න.
අක්රිය කළ ක්රම ලැයිස්තුව ගෝලීයව හිස් කිරීම පොදු ප්රොක්සි විසඳුමක් නොවේ. සංකේතනය නොකළ HTTP ප්රොක්සියකට යවන Basic පිවිසුම් තොරතුරු ගමනාන්තය සමඟ පසුව සාදන TLS සම්බන්ධතාවෙන් ආරක්ෂා නොවේ. වෙනසක් අනුමත කිරීමට පෙර ප්රොක්සි ප්රවාහනය, සත්යාපන ක්රමය සහ යෙදවීමේ ප්රතිපත්තිය විමසන්න.
JDK හි ඇතුළත් සත්යාපනයේ ලේඛනගත හැසිරීමද ප්රොක්සිය ප්රකාශ කරන සෑම ක්රමයකටම සහාය දෙන බවට පොරොන්දුවක් නොවේ. අතින් සැපයූ Authorization හෝ Proxy-Authorization ශීර්ෂයක් ස්වයංක්රීය සත්යාපක ප්රවාහය වෙනස් කරයි; callback එක උදාහරණයට වඩා වෙනස්ව ක්රියා කරන විට අභිරුචි ශීර්ෂ පරීක්ෂා කරන්න.