Skip to content

Commit 75315f8

Browse files
sgramponeBeta Bot
authored andcommitted
Cherry pick branch 'genexuslabs:gamutils_eo' into beta
1 parent 6ca462f commit 75315f8

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

gamutils/src/main/java/com/genexus/gam/utils/Encoding.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class Encoding {
1717
public static String b64ToB64Url(String input) {
1818
logger.debug("b64ToB64Url");
1919
try {
20-
return new String(UrlBase64.encode(Base64.decode(input)), "UTF-8").replaceAll("[\ufffd]", "");
20+
return java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(Base64.decode(input));
2121
} catch (Exception e) {
2222
logger.error("b64ToB64Url", e);
2323
return "";
@@ -40,7 +40,7 @@ public static String toBase64Url(String input)
4040
{
4141
logger.debug("UTF8toBase64Url");
4242
try{
43-
return new String(UrlBase64.encode(input.getBytes(StandardCharsets.UTF_8)));
43+
return java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(input.getBytes(StandardCharsets.UTF_8));
4444
}catch (Exception e)
4545
{
4646
logger.error("UTF8toBase64Url", e);
@@ -52,7 +52,7 @@ public static String fromBase64Url(String base64Url)
5252
{
5353
logger.debug("fromBase64Url");
5454
try{
55-
return new String(UrlBase64.decode(base64Url), StandardCharsets.UTF_8);
55+
return new String(java.util.Base64.getUrlDecoder().decode(base64Url), StandardCharsets.ISO_8859_1);
5656
}catch (Exception e)
5757
{
5858
logger.error("fromBase64Url", e);

gamutils/src/test/java/com/genexus/gam/utils/test/EncodingTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import com.genexus.gam.utils.Random;
66
import org.bouncycastle.util.encoders.Base64;
77
import org.bouncycastle.util.encoders.Hex;
8-
import org.bouncycastle.util.encoders.UrlBase64;
98
import org.junit.Assert;
109
import org.junit.Test;
1110

1211
import java.nio.charset.StandardCharsets;
12+
import java.text.MessageFormat;
1313

1414
public class EncodingTest {
1515

@@ -26,14 +26,23 @@ public void testB64ToB64Url() {
2626

2727
private static String b64UrlToUtf8(String base64Url) {
2828
try {
29-
byte[] bytes = UrlBase64.decode(base64Url);
30-
return new String(bytes, StandardCharsets.UTF_8).replaceAll("[\ufffd]", "");
29+
return new String(java.util.Base64.getUrlDecoder().decode(base64Url), StandardCharsets.ISO_8859_1);
3130
} catch (Exception e) {
3231
e.printStackTrace();
3332
return "";
3433
}
3534
}
3635

36+
@Test
37+
public void testBase64Url() {
38+
String[] utf8 = new String[]{"GQTuYnnS9AbcKXndwxiZbxk4Q60nhuEd", "rf7tZx8aWO28YOKLISDWY33HuarNHkIZ", "sF7Ic0iuZxE50nz3W5Jnj7R0nQlRD0b1", "GGKmW2ubkhnA9ASaVlVAKM6FQdPCQ1pj", "LMW0GSCVyeGiGzf84eIwuX6OHAfur9fp", "zq9Kni7W1r0UIzG9hjYeiqJhSYlWVZSa", "WcyhGLQNyQkP2YmOjVtIilpqcHgYCzjq", "DuhO4PBiXRDDj50RBRo8wNUU8R3UXbp0", "pkPfYXOyoLUsEwm4HjjDB6E2c3aUjYNh", "fgbrZoKKMym9HN5zlKj0a8ohgQlJm3PM", "owGXQ7p6BeFeK1KFVOsdbSRd0sMwgFRU"};
39+
String[] b64 = new String[]{"R1FUdVlublM5QWJjS1huZHd4aVpieGs0UTYwbmh1RWQ", "cmY3dFp4OGFXTzI4WU9LTElTRFdZMzNIdWFyTkhrSVo", "c0Y3SWMwaXVaeEU1MG56M1c1Sm5qN1IwblFsUkQwYjE", "R0dLbVcydWJraG5BOUFTYVZsVkFLTTZGUWRQQ1ExcGo", "TE1XMEdTQ1Z5ZUdpR3pmODRlSXd1WDZPSEFmdXI5ZnA", "enE5S25pN1cxcjBVSXpHOWhqWWVpcUpoU1lsV1ZaU2E", "V2N5aEdMUU55UWtQMlltT2pWdElpbHBxY0hnWUN6anE", "RHVoTzRQQmlYUkREajUwUkJSbzh3TlVVOFIzVVhicDA", "cGtQZllYT3lvTFVzRXdtNEhqakRCNkUyYzNhVWpZTmg", "ZmdiclpvS0tNeW05SE41emxLajBhOG9oZ1FsSm0zUE0", "b3dHWFE3cDZCZUZlSzFLRlZPc2RiU1JkMHNNd2dGUlU"};
40+
for (int i = 0; i < utf8.length; i++) {
41+
Assert.assertEquals(MessageFormat.format("testBase64Url toBase64Url fail index: {0}", i), b64[i], Encoding.toBase64Url(utf8[i]));
42+
Assert.assertEquals(MessageFormat.format("testBase64Url fromBase64Url fail index: {0}", i), utf8[i], Encoding.fromBase64Url(b64[i]));
43+
}
44+
}
45+
3746
@Test
3847
public void testToBase64Url() {
3948
int i = 0;

0 commit comments

Comments
 (0)