--- a/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Thu Aug 22 13:47:14 2019 +0200
+++ b/src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Thu Aug 22 14:36:10 2019 +0100
@@ -2265,6 +2265,8 @@
if (host != null && authhdr.isPresent()) {
HeaderParser p = authhdr.headerParser();
String realm = p.findValue("realm");
+ String charset = p.findValue("charset");
+ boolean isUTF8 = (charset != null && charset.equalsIgnoreCase("UTF-8"));
String scheme = authhdr.scheme();
AuthScheme authScheme = UNKNOWN;
if ("basic".equalsIgnoreCase(scheme)) {
@@ -2310,7 +2312,7 @@
realm, scheme, url, RequestorType.PROXY);
if (a != null) {
ret = new BasicAuthentication(true, host, port, realm, a,
- getAuthenticatorKey());
+ isUTF8, getAuthenticatorKey());
}
break;
case DIGEST:
@@ -2428,6 +2430,8 @@
HeaderParser p = authhdr.headerParser();
String realm = p.findValue("realm");
String scheme = authhdr.scheme();
+ String charset = p.findValue("charset");
+ boolean isUTF8 = (charset != null && charset.equalsIgnoreCase("UTF-8"));
AuthScheme authScheme = UNKNOWN;
if ("basic".equalsIgnoreCase(scheme)) {
authScheme = BASIC;
@@ -2479,7 +2483,7 @@
realm, scheme, url, RequestorType.SERVER);
if (a != null) {
ret = new BasicAuthentication(false, url, realm, a,
- getAuthenticatorKey());
+ isUTF8, getAuthenticatorKey());
}
break;
case DIGEST: