Replaced internal Base64 by java.util.Base64 (#3803) (#3829)
* Replaced core-common.src.main.java.org.glassfish.jersey.internal.util.Base64 with java.util.Base64
* fixed conversion to String after decoding of Base64 encode message
Signed-off-by: Michael Durawa <michael.durawa@boehringer-ingelheim.com>
diff --git a/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/ProxyBasicAuthenticator.java b/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/ProxyBasicAuthenticator.java
index f7d7777..bab2807 100644
--- a/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/ProxyBasicAuthenticator.java
+++ b/connectors/jdk-connector/src/main/java/org/glassfish/jersey/jdk/connector/internal/ProxyBasicAuthenticator.java
@@ -17,8 +17,8 @@
package org.glassfish.jersey.jdk.connector.internal;
import java.nio.charset.Charset;
+import java.util.Base64;
-import org.glassfish.jersey.internal.util.Base64;
/**
* @author Ondrej Kosatka (ondrej.kosatka at oracle.com)
@@ -46,6 +46,6 @@
System.arraycopy(prefix, 0, usernamePassword, 0, prefix.length);
System.arraycopy(passwordBytes, 0, usernamePassword, prefix.length, passwordBytes.length);
- return "Basic " + Base64.encodeAsString(usernamePassword);
+ return "Basic " + Base64.getEncoder().encodeToString(usernamePassword);
}
}
diff --git a/connectors/jdk-connector/src/test/java/org/glassfish/jersey/jdk/connector/internal/ProxyTest.java b/connectors/jdk-connector/src/test/java/org/glassfish/jersey/jdk/connector/internal/ProxyTest.java
index d1a0a72..15a2cdf 100644
--- a/connectors/jdk-connector/src/test/java/org/glassfish/jersey/jdk/connector/internal/ProxyTest.java
+++ b/connectors/jdk-connector/src/test/java/org/glassfish/jersey/jdk/connector/internal/ProxyTest.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
+import java.util.Base64;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -31,7 +32,6 @@
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.internal.util.Base64;
import org.glassfish.jersey.jdk.connector.JdkConnectorProperties;
import org.glassfish.jersey.jdk.connector.JdkConnectorProvider;
import org.glassfish.jersey.server.ResourceConfig;
@@ -227,7 +227,7 @@
response.setStatus(400);
return false;
}
- String decoded = new String(Base64.decode(authorizationHeader.substring(6).getBytes()),
+ String decoded = new String(Base64.getDecoder().decode(authorizationHeader.substring(6).getBytes()),
CHARACTER_SET);
final String[] split = decoded.split(":");
final String username = split[0];
diff --git a/core-client/src/main/java/org/glassfish/jersey/client/authentication/BasicAuthenticator.java b/core-client/src/main/java/org/glassfish/jersey/client/authentication/BasicAuthenticator.java
index f526307..b08b074 100644
--- a/core-client/src/main/java/org/glassfish/jersey/client/authentication/BasicAuthenticator.java
+++ b/core-client/src/main/java/org/glassfish/jersey/client/authentication/BasicAuthenticator.java
@@ -16,12 +16,13 @@
package org.glassfish.jersey.client.authentication;
+import java.util.Base64;
+
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.core.HttpHeaders;
import org.glassfish.jersey.client.internal.LocalizationMessages;
-import org.glassfish.jersey.internal.util.Base64;
/**
* Implementation of Basic Http Authentication method (RFC 2617).
@@ -61,7 +62,7 @@
System.arraycopy(prefix, 0, usernamePassword, 0, prefix.length);
System.arraycopy(password, 0, usernamePassword, prefix.length, password.length);
- return "Basic " + Base64.encodeAsString(usernamePassword);
+ return "Basic " + Base64.getEncoder().encodeToString(usernamePassword);
}
/**
diff --git a/core-client/src/test/java/org/glassfish/jersey/client/filter/HttpBasicAuthFilterTest.java b/core-client/src/test/java/org/glassfish/jersey/client/filter/HttpBasicAuthFilterTest.java
index 43f2511..e967db0 100644
--- a/core-client/src/test/java/org/glassfish/jersey/client/filter/HttpBasicAuthFilterTest.java
+++ b/core-client/src/test/java/org/glassfish/jersey/client/filter/HttpBasicAuthFilterTest.java
@@ -17,6 +17,7 @@
package org.glassfish.jersey.client.filter;
+import java.util.Base64;
import java.util.concurrent.Future;
import javax.ws.rs.client.Client;
@@ -34,7 +35,7 @@
import org.glassfish.jersey.client.spi.AsyncConnectorCallback;
import org.glassfish.jersey.client.spi.Connector;
import org.glassfish.jersey.client.spi.ConnectorProvider;
-import org.glassfish.jersey.internal.util.Base64;
+
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -53,7 +54,8 @@
Invocation.Builder invBuilder = client.target(UriBuilder.fromUri("/").build()).request();
Response r = invBuilder.get();
- assertEquals("Basic " + Base64.encodeAsString("Uzivatelske jmeno:Heslo"), r.getHeaderString(HttpHeaders.AUTHORIZATION));
+ assertEquals("Basic " + Base64.getEncoder().encodeToString("Uzivatelske jmeno:Heslo".getBytes()),
+ r.getHeaderString(HttpHeaders.AUTHORIZATION));
}
@Test
@@ -63,7 +65,7 @@
Invocation.Builder invBuilder = client.target(UriBuilder.fromUri("/").build()).request();
Response r = invBuilder.get();
- assertEquals("Basic " + Base64.encodeAsString(":"), r.getHeaderString(HttpHeaders.AUTHORIZATION));
+ assertEquals("Basic " + Base64.getEncoder().encodeToString(":".getBytes()), r.getHeaderString(HttpHeaders.AUTHORIZATION));
}
private static class TestConnector implements Connector, ConnectorProvider {
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/util/Base64.java b/core-common/src/main/java/org/glassfish/jersey/internal/util/Base64.java
deleted file mode 100644
index f3c6f57..0000000
--- a/core-common/src/main/java/org/glassfish/jersey/internal/util/Base64.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-package org.glassfish.jersey.internal.util;
-
-import java.io.UnsupportedEncodingException;
-
-/**
- * Utility class that implements base64 encoding and decoding.
- *
- * @author Martin Matula
- */
-public class Base64 {
-
- private static final byte[] CHAR_SET;
-
- static {
- final String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
- byte[] cs;
-
- try {
- cs = s.getBytes("ASCII");
- } catch (final UnsupportedEncodingException ex) {
- // should never happen
- cs = s.getBytes();
- }
- CHAR_SET = cs;
- }
-
- private static final byte[] BASE64INDEXES = {
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64,
- 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64,
- 64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
- };
-
- /**
- * Encodes array of bytes using base64 encoding.
- *
- * @param buffer Array of bytes to be encoded.
- * @return Encoded result as an array of bytes.
- */
- public static byte[] encode(final byte[] buffer) {
- final int ccount = buffer.length / 3;
- final int rest = buffer.length % 3;
- final byte[] result = new byte[(ccount + (rest > 0 ? 1 : 0)) * 4];
-
- for (int i = 0; i < ccount; i++) {
- result[i * 4] = CHAR_SET[(buffer[i * 3] >> 2) & 0xff];
- result[i * 4 + 1] = CHAR_SET[(((buffer[i * 3] & 0x03) << 4) | (buffer[i * 3 + 1] >> 4)) & 0xff];
- result[i * 4 + 2] = CHAR_SET[(((buffer[i * 3 + 1] & 0x0f) << 2) | (buffer[i * 3 + 2] >> 6)) & 0xff];
- result[i * 4 + 3] = CHAR_SET[buffer[i * 3 + 2] & 0x3f];
- }
-
- int temp = 0;
-
- if (rest > 0) {
- if (rest == 2) {
- result[ccount * 4 + 2] = CHAR_SET[((buffer[ccount * 3 + 1] & 0x0f) << 2) & 0xff];
- temp = buffer[ccount * 3 + 1] >> 4;
- } else {
- result[ccount * 4 + 2] = CHAR_SET[CHAR_SET.length - 1];
- }
- result[ccount * 4 + 3] = CHAR_SET[CHAR_SET.length - 1];
- result[ccount * 4 + 1] = CHAR_SET[(((buffer[ccount * 3] & 0x03) << 4) | temp) & 0xff];
- result[ccount * 4] = CHAR_SET[(buffer[ccount * 3] >> 2) & 0xff];
- }
-
- return result;
- }
-
- /**
- * Decodes Base64 data into octects.
- *
- * @param buffer Byte array containing Base64 data
- * @return Array containing decoded data.
- */
- @SuppressWarnings("fallthrough")
- public static byte[] decode(final byte[] buffer) {
- if (buffer.length < 4 && (buffer.length % 4) != 0) {
- return new byte[0];
- }
-
- final int ccount = buffer.length / 4;
- final int paddingCount = (buffer[buffer.length - 1] == '=' ? 1 : 0) + (buffer[buffer.length - 2] == '=' ? 1 : 0);
- final byte[] result = new byte[3 * (ccount - 1) + (3 - paddingCount)];
-
- for (int i = 0; i < (ccount - 1); i++) {
- result[i * 3] = (byte) ((BASE64INDEXES[buffer[i * 4]] << 2) | (BASE64INDEXES[buffer[i * 4 + 1]] >> 4));
- result[i * 3 + 1] = (byte) ((BASE64INDEXES[buffer[i * 4 + 1]] << 4) | (BASE64INDEXES[buffer[i * 4 + 2]] >> 2));
- result[i * 3 + 2] = (byte) ((BASE64INDEXES[buffer[i * 4 + 2]] << 6) | BASE64INDEXES[buffer[i * 4 + 3]]);
- }
-
- final int i = ccount - 1;
- switch (paddingCount) {
- case 0:
- result[i * 3 + 2] = (byte) ((BASE64INDEXES[buffer[i * 4 + 2]] << 6) | BASE64INDEXES[buffer[i * 4 + 3]]);
- result[i * 3 + 1] = (byte) ((BASE64INDEXES[buffer[i * 4 + 1]] << 4) | (BASE64INDEXES[buffer[i * 4 + 2]] >> 2));
- result[i * 3] = (byte) ((BASE64INDEXES[buffer[i * 4]] << 2) | (BASE64INDEXES[buffer[i * 4 + 1]] >> 4));
- break;
- case 1:
- result[i * 3 + 1] = (byte) ((BASE64INDEXES[buffer[i * 4 + 1]] << 4) | (BASE64INDEXES[buffer[i * 4 + 2]] >> 2));
- result[i * 3] = (byte) ((BASE64INDEXES[buffer[i * 4]] << 2) | (BASE64INDEXES[buffer[i * 4 + 1]] >> 4));
- break;
- case 2:
- result[i * 3] = (byte) ((BASE64INDEXES[buffer[i * 4]] << 2) | (BASE64INDEXES[buffer[i * 4 + 1]] >> 4));
- break;
- }
-
- return result;
- }
-
- /**
- * Encodes array of bytes using base64 encoding and returns the result as a string.
- *
- * @param buffer Array of bytes to be encoded.
- * @return Resulting encoded string.
- */
- public static String encodeAsString(final byte[] buffer) {
- final byte[] result = encode(buffer);
- try {
- return new String(result, "ASCII");
- } catch (final UnsupportedEncodingException ex) {
- // should never happen
- return new String(result);
- }
- }
-
- /**
- * Encodes a string using base64 and returns the result as another string.
- *
- * @param text String to be encoded.
- * @return Resulting encoded string.
- */
- public static String encodeAsString(final String text) {
- return encodeAsString(text.getBytes());
- }
-
- /**
- * Decodes array of bytes using base64 decoding and returns the result as a string.
- *
- * @param buffer Array of bytes to be decoded.
- * @return Resulting decoded string.
- */
- public static String decodeAsString(final byte[] buffer) {
- final byte[] result = decode(buffer);
- try {
- return new String(result, "ASCII");
- } catch (final UnsupportedEncodingException ex) {
- // should never happen
- return new String(result);
- }
- }
-
- /**
- * Decodes a string using base64 and returns the result as another string.
- *
- * @param text String to be decoded.
- * @return Resulting decoded string.
- */
- public static String decodeAsString(final String text) {
- return decodeAsString(text.getBytes());
- }
-}
diff --git a/core-common/src/test/java/org/glassfish/jersey/internal/util/Base64Test.java b/core-common/src/test/java/org/glassfish/jersey/internal/util/Base64Test.java
index 89dfa98..b083ad9 100644
--- a/core-common/src/test/java/org/glassfish/jersey/internal/util/Base64Test.java
+++ b/core-common/src/test/java/org/glassfish/jersey/internal/util/Base64Test.java
@@ -17,6 +17,7 @@
package org.glassfish.jersey.internal.util;
import java.util.Arrays;
+import java.util.Base64;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -48,35 +49,35 @@
@Test
public void testEncodeString() throws Exception {
for (int i = 0; i < decoded.length; i++) {
- assertEquals(encoded[i], new String(Base64.encode(decoded[i].getBytes("ASCII")), "ASCII"));
+ assertEquals(encoded[i], new String(Base64.getEncoder().encode(decoded[i].getBytes("ASCII")), "ASCII"));
}
}
@Test
public void testDecodeString() throws Exception {
for (int i = 0; i < encoded.length; i++) {
- assertEquals(decoded[i], new String(Base64.decode(encoded[i].getBytes("ASCII")), "ASCII"));
+ assertEquals(decoded[i], new String(Base64.getDecoder().decode(encoded[i].getBytes("ASCII")), "ASCII"));
}
}
@Test
public void testRoundtripLengthMod3Equals0() {
byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8};
- byte[] result = Base64.decode(Base64.encode(data));
+ byte[] result = Base64.getDecoder().decode(Base64.getEncoder().encode(data));
assertTrue("failed to roundtrip value to base64", Arrays.equals(data, result));
}
@Test
public void testRoundtripLengthMod3Equals1() {
byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- byte[] result = Base64.decode(Base64.encode(data));
+ byte[] result = Base64.getDecoder().decode(Base64.getEncoder().encode(data));
assertTrue("failed to roundtrip value to base64", Arrays.equals(data, result));
}
@Test
public void testRoundtripLengthMod3Equals2() {
byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- byte[] result = Base64.decode(Base64.encode(data));
+ byte[] result = Base64.getDecoder().decode(Base64.getEncoder().encode(data));
assertTrue("failed to roundtrip value to base64", Arrays.equals(data, result));
}
@@ -84,10 +85,10 @@
public void testRoundtripOneByteGreaterThan127() {
byte[] data = {(byte) 128};
try {
- byte[] result = Base64.decode(Base64.encode(data));
- fail();
- } catch (Exception e) {
+ byte[] result = Base64.getDecoder().decode(Base64.getEncoder().encode(data));
// ok
+ } catch (Exception e) {
+ fail();
}
}
@@ -95,10 +96,10 @@
public void testRoundtripAssortedValues() {
byte[] data = {0, 1, 63, 64, 65, (byte) 127, (byte) 128, (byte) 1299, (byte) 254, (byte) 255};
try {
- Base64.decode(Base64.encode(data));
- fail();
- } catch (Exception e) {
+ Base64.getDecoder().decode(Base64.getEncoder().encode(data));
// ok
+ } catch (Exception e) {
+ fail();
}
}
@@ -109,10 +110,10 @@
data[i] = (byte) (255 - i);
}
try {
- new String(Base64.encode(data));
- fail();
- } catch (Exception e) {
+ new String(Base64.getEncoder().encode(data));
// ok
+ } catch (Exception e) {
+ fail();
}
}
@@ -122,7 +123,7 @@
+ "+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn"
+ "+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6"
+ "/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==";
- byte[] result = Base64.decode(data.getBytes());
+ byte[] result = Base64.getDecoder().decode(data.getBytes());
assertEquals("incorrect length", result.length, 256);
for (int i = 0; i < 256; ++i) {
diff --git a/security/oauth1-signature/src/test/java/org/glassfish/jersey/oauth1/signature/OAuthBase64Test.java b/security/oauth1-signature/src/test/java/org/glassfish/jersey/oauth1/signature/OAuthBase64Test.java
index 9187fa1..f72b023 100644
--- a/security/oauth1-signature/src/test/java/org/glassfish/jersey/oauth1/signature/OAuthBase64Test.java
+++ b/security/oauth1-signature/src/test/java/org/glassfish/jersey/oauth1/signature/OAuthBase64Test.java
@@ -31,17 +31,17 @@
public void test() throws IOException {
final String str = "Hello World123456789jhfsljkh347uweihd7834yfoiuhef5re4g54es35gf474w5/";
final String encoded = Base64.encode(str.getBytes());
- final String encodedUtil = new String(org.glassfish.jersey.internal.util.Base64.encode(str.getBytes()));
- final String encodedUtilStr = org.glassfish.jersey.internal.util.Base64.encodeAsString(str);
+ final String encodedUtil = new String(java.util.Base64.getEncoder().encode(str.getBytes()));
+ final String encodedUtilStr = java.util.Base64.getEncoder().encodeToString(str.getBytes());
System.out.println(encoded);
Assert.assertEquals(encoded, encodedUtil);
Assert.assertEquals(encoded, encodedUtilStr);
final String decoded = new String(Base64.decode(encoded));
- final String decodedUtil = new String(org.glassfish.jersey.internal.util.Base64.decode(encoded.getBytes()));
- final String decodedUtilStr = org.glassfish.jersey.internal.util.Base64.decodeAsString(encoded.getBytes());
- final String decodedUtilStr2 = org.glassfish.jersey.internal.util.Base64.decodeAsString(encoded);
+ final String decodedUtil = new String(java.util.Base64.getDecoder().decode(encoded.getBytes()));
+ final String decodedUtilStr = new String(java.util.Base64.getDecoder().decode(encoded.getBytes()));
+ final String decodedUtilStr2 = new String(java.util.Base64.getDecoder().decode(encoded));
Assert.assertEquals(decoded, decodedUtil);
Assert.assertEquals(decoded, decodedUtilStr);
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/HttpAuthorizationTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/HttpAuthorizationTest.java
index 24d8114..5741988 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/HttpAuthorizationTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/HttpAuthorizationTest.java
@@ -23,6 +23,7 @@
import java.lang.annotation.Target;
import java.nio.charset.Charset;
import java.security.Principal;
+import java.util.Base64;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -39,7 +40,6 @@
import javax.ws.rs.core.SecurityContext;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
-import org.glassfish.jersey.internal.util.Base64;
import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
@@ -157,7 +157,7 @@
String authHeader = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
if (authHeader != null && authHeader.trim().toUpperCase().startsWith("BASIC")) {
- String decoded = new String(Base64.decode(authHeader.substring(6).getBytes()), CHARACTER_SET);
+ String decoded = new String(Base64.getDecoder().decode(authHeader.substring(6).getBytes()), CHARACTER_SET);
// String decoded = Base64.decodeAsString(authHeader.substring(6));
final String[] split = decoded.split(":");
final String username = split[0];
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/RootResource.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/RootResource.java
index bccbf94..23205f2 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/RootResource.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/RootResource.java
@@ -16,6 +16,7 @@
package org.glassfish.jersey.tests.e2e.client.connector.ssl;
+import java.util.Base64;
import java.util.logging.Logger;
import javax.ws.rs.GET;
@@ -23,7 +24,6 @@
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
-import org.glassfish.jersey.internal.util.Base64;
/**
* Simple resource demonstrating low level approach of getting user credentials.
@@ -60,7 +60,7 @@
String auth = headers.getRequestHeader("authorization").get(0);
auth = auth.substring("Basic ".length());
- String[] values = Base64.decodeAsString(auth).split(":");
+ String[] values = new String(Base64.getDecoder().decode(auth)).split(":");
// String username = values[0];
// String password = values[1];
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SecurityFilter.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SecurityFilter.java
index 128d4cf..986b64c 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SecurityFilter.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/connector/ssl/SecurityFilter.java
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.security.Principal;
+import java.util.Base64;
import java.util.logging.Logger;
import javax.ws.rs.WebApplicationException;
@@ -31,7 +32,6 @@
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.ext.Provider;
-import org.glassfish.jersey.internal.util.Base64;
import org.glassfish.jersey.server.ContainerRequest;
/**
@@ -73,7 +73,7 @@
// "Only HTTP Basic authentication is supported"
}
authentication = authentication.substring("Basic ".length());
- String[] values = Base64.decodeAsString(authentication).split(":");
+ String[] values = new String(Base64.getDecoder().decode(authentication)).split(":");
if (values.length < 2) {
throw new WebApplicationException(400);
// "Invalid syntax for username and password"