Skip to content

Commit 72776e4

Browse files
committed
Add test extractUsernameFromTokenBase64PaddingWorks()
1 parent 80c955e commit 72776e4

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/test/java/fi/hsl/common/redis/RedisUtilsTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.testcontainers.utility.DockerImageName;
99
import redis.clients.jedis.Jedis;
1010

11+
import java.util.Base64;
12+
1113
import static org.junit.Assert.assertEquals;
1214
import static org.junit.Assert.assertFalse;
1315

@@ -51,4 +53,20 @@ public void testSetGetExpiringValue() throws InterruptedException {
5153

5254
assertFalse(redisUtils.getValue("test").isPresent());
5355
}
56+
57+
@Test
58+
public void extractUsernameFromTokenBase64PaddingWorks() {
59+
// Payload with length not a multiple of 4 (e.g., 2 or 3 mod 4)
60+
String header = Base64.getUrlEncoder().withoutPadding().encodeToString("{\"alg\":\"none\"}".getBytes());
61+
62+
// 2 mod 4 length
63+
String payload2 = Base64.getUrlEncoder().withoutPadding().encodeToString("{\"oid\":\"ab\"}".getBytes());
64+
String token2 = header + "." + payload2 + ".sig";
65+
assertEquals("ab", RedisUtils.extractUsernameFromToken(token2));
66+
67+
// 3 mod 4 length
68+
String payload3 = Base64.getUrlEncoder().withoutPadding().encodeToString("{\"oid\":\"abc\"}".getBytes());
69+
String token3 = header + "." + payload3 + ".sig";
70+
assertEquals("abc", RedisUtils.extractUsernameFromToken(token3));
71+
}
5472
}

0 commit comments

Comments
 (0)