Skip to content

Commit 63c7c0a

Browse files
authored
Merge pull request #1376 from Adyen/migrate-java-util-base64-to-apache-commons
Migrate java.util.Base64 to apache.commons library
2 parents 666de3b + 430e82d commit 63c7c0a

File tree

7 files changed

+16
-18
lines changed

7 files changed

+16
-18
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
<dependency>
201201
<groupId>org.apache.httpcomponents.client5</groupId>
202202
<artifactId>httpclient5</artifactId>
203-
<version>5.3.1</version>
203+
<version>5.4</version>
204204
<scope>compile</scope>
205205
</dependency>
206206
<dependency>

src/main/java/com/adyen/httpclient/AdyenHttpClient.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import com.adyen.Config;
2525
import com.adyen.constants.ApiConstants;
2626
import com.adyen.model.RequestOptions;
27-
import java.util.Base64;
27+
import org.apache.commons.codec.binary.Base64;
2828
import org.apache.hc.client5.http.classic.methods.HttpDelete;
2929
import org.apache.hc.client5.http.classic.methods.HttpGet;
3030
import org.apache.hc.client5.http.classic.methods.HttpPatch;
@@ -244,7 +244,7 @@ private void setApiKey(HttpUriRequest httpUriRequest, String apiKey) {
244244
private void setBasicAuthentication(HttpUriRequest httpUriRequest, String username, String password) {
245245
// set basic authentication
246246
String authString = username + ":" + password;
247-
byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes());
247+
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
248248
String authStringEnc = new String(authEncBytes);
249249

250250
httpUriRequest.addHeader("Authorization", "Basic " + authStringEnc);

src/main/java/com/adyen/terminal/serialization/ByteArrayToBase64TypeAdapter.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@
2828
import com.google.gson.JsonPrimitive;
2929
import com.google.gson.JsonSerializationContext;
3030
import com.google.gson.JsonSerializer;
31-
import java.util.Base64;
31+
import org.apache.commons.codec.binary.Base64;
3232
import java.lang.reflect.Type;
3333

3434
public class ByteArrayToBase64TypeAdapter implements JsonSerializer<byte[]>, JsonDeserializer<byte[]> {
3535
public byte[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
36-
return Base64.getDecoder().decode(json.getAsString().getBytes());
36+
return Base64.decodeBase64(json.getAsString().getBytes());
3737
}
3838

3939
public JsonElement serialize(byte[] src, Type typeOfSrc, JsonSerializationContext context) {
40-
return new JsonPrimitive(new String(Base64.getEncoder().encode(src)));
40+
return new JsonPrimitive(new String(Base64.encodeBase64(src)));
4141
}
4242
}

src/main/java/com/adyen/util/HMACValidator.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import com.adyen.model.notification.Amount;
2424
import com.adyen.model.notification.NotificationRequestItem;
25-
import java.util.Base64;
25+
import org.apache.commons.codec.binary.Base64;
2626
import javax.xml.bind.DatatypeConverter;
2727

2828
import javax.crypto.Mac;
@@ -60,7 +60,7 @@ public String calculateHMAC(String data, String key) throws IllegalArgumentExcep
6060
byte[] rawHmac = mac.doFinal(data.getBytes(StandardCharsets.UTF_8));
6161

6262
// Base64-encode the hmac
63-
return new String(Base64.getEncoder().encode(rawHmac));
63+
return new String(Base64.encodeBase64(rawHmac));
6464
} catch (IllegalArgumentException e) {
6565
throw new IllegalArgumentException("Missing data or key.");
6666
} catch (Exception e) {

src/test/java/com/adyen/LegalEntityManagementTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import org.junit.Test;
88

99
import java.io.IOException;
10-
import java.util.Base64;
10+
import org.apache.commons.codec.binary.Base64;
1111
import java.util.logging.Level;
1212
import java.util.logging.Logger;
1313

@@ -320,7 +320,7 @@ public void TestBase64EncodedResponseToByteArray() throws Exception {
320320
" \"type\": \"bankStatement\"\n" +
321321
"}");
322322
Document response = service.updateDocument("SE322KT223222D5FJ7TJN2986", request);
323-
assertEquals("Thisisanbase64encodedstring", new String(Base64.getDecoder().decode(response.getAttachments().get(0).getContent())));
323+
assertEquals("Thisisanbase64encodedstring", new String(Base64.decodeBase64(response.getAttachments().get(0).getContent())));
324324
}
325325

326326
@Test

src/test/java/com/adyen/PaymentTest.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,18 @@
3030
import com.adyen.service.PaymentApi;
3131
import com.adyen.service.exception.ApiException;
3232
import com.adyen.util.DateUtil;
33-
import com.fasterxml.jackson.databind.JavaType;
34-
import com.google.gson.reflect.TypeToken;
3533
import okio.ByteString;
3634
import org.junit.Test;
3735

3836
import java.io.IOException;
39-
import java.lang.reflect.Type;
4037
import java.nio.charset.StandardCharsets;
4138
import java.text.DateFormat;
4239
import java.text.SimpleDateFormat;
4340
import java.util.HashMap;
4441
import java.util.Locale;
4542
import java.util.Map;
4643
import java.util.TimeZone;
47-
import java.util.Base64;
44+
import org.apache.commons.codec.binary.Base64;
4845

4946
import static com.adyen.constants.ApiConstants.AdditionalData.*;
5047
import static com.adyen.constants.ApiConstants.SelectedBrand.BOLETO_SANTANDER;
@@ -454,7 +451,7 @@ public void TestByteArrayDeserialization() throws Exception {
454451
byte[] actualDeserializedBytes = JSON.getMapper().readValue(serializedBytesWithQuotes, byte[].class);
455452

456453
// Assert
457-
assertEquals(expectedBytesAsString, new String(Base64.getDecoder().decode(actualDeserializedBytes)));
454+
assertEquals(expectedBytesAsString, new String(Base64.decodeBase64(actualDeserializedBytes)));
458455
}
459456

460457
@Test

src/test/java/com/adyen/serializer/ByteArrayToStringAdapterTest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
import com.google.gson.JsonElement;
2424
import com.google.gson.JsonPrimitive;
25-
import java.util.Base64;import org.junit.Test;
25+
import org.apache.commons.codec.binary.Base64;
26+
import org.junit.Test;
2627
import org.junit.runner.RunWith;
2728
import org.mockito.junit.MockitoJUnitRunner;
2829

@@ -35,7 +36,7 @@ public class ByteArrayToStringAdapterTest {
3536
@Test
3637
public void testSerialize() {
3738
ByteArrayToStringAdapter adapter = new ByteArrayToStringAdapter();
38-
byte[] base64Bytes = Base64.getEncoder().encode("Bytes-To-Be-Encoded".getBytes());
39+
byte[] base64Bytes = Base64.encodeBase64("Bytes-To-Be-Encoded".getBytes());
3940

4041
JsonElement serializedElement = adapter.serialize(base64Bytes, null, null);
4142
assertEquals("Qnl0ZXMtVG8tQmUtRW5jb2RlZA==", serializedElement.getAsString());
@@ -44,7 +45,7 @@ public void testSerialize() {
4445
@Test
4546
public void testDeserialize() {
4647
ByteArrayToStringAdapter adapter = new ByteArrayToStringAdapter();
47-
byte[] base64Bytes = Base64.getEncoder().encode("Bytes-To-Be-Encoded".getBytes());
48+
byte[] base64Bytes = Base64.encodeBase64("Bytes-To-Be-Encoded".getBytes());
4849

4950
JsonElement element = new JsonPrimitive("Qnl0ZXMtVG8tQmUtRW5jb2RlZA==");
5051
byte[] deserializedBytes = adapter.deserialize(element, null, null);

0 commit comments

Comments
 (0)