Skip to content

Commit dd0e6ee

Browse files
committed
fromUrlEncoded to handle input not starting with ?
1 parent ad25ea3 commit dd0e6ee

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

src/main/java/org/oidc/msg/AbstractMessage.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ public void fromUrlEncoded(String input) throws MalformedURLException, Deseriali
106106
return;
107107
}
108108
StringBuilder jsonBuilder = new StringBuilder("{ ");
109-
StringTokenizer paramTokenizer = new StringTokenizer(input.substring(1), "&");
109+
StringTokenizer paramTokenizer = new StringTokenizer(
110+
input.substring(input.startsWith("?") ? 1 : 0), "&");
110111
while (paramTokenizer.hasMoreTokens()) {
111112
String pair = paramTokenizer.nextToken();
112113
StringTokenizer pairTokenizer = new StringTokenizer(pair, "=");

src/test/java/org/oidc/msg/AbstractMessageTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.fasterxml.jackson.core.JsonProcessingException;
3333
import java.io.IOException;
3434
import java.lang.reflect.Array;
35+
import java.net.MalformedURLException;
3536
import java.security.interfaces.RSAPublicKey;
3637
import java.util.ArrayList;
3738
import java.util.Arrays;
@@ -55,6 +56,17 @@ public void setUp() throws Exception {
5556
message = new MockMessage();
5657
}
5758

59+
@Test
60+
public void fromUrlEncodedRemoveQuestionMark()
61+
throws MalformedURLException, DeserializationException {
62+
MockMessage pcr = new MockMessage();
63+
pcr.fromUrlEncoded("?key1=value1&key2=value2");
64+
Assert.assertEquals("value1", pcr.getClaims().get("key1"));
65+
Assert.assertEquals("value2", pcr.getClaims().get("key2"));
66+
pcr.fromUrlEncoded("key1=value1&key2=value2");
67+
Assert.assertEquals("value1", pcr.getClaims().get("key1"));
68+
Assert.assertEquals("value2", pcr.getClaims().get("key2"));
69+
}
5870

5971
@Test
6072
public void testToAndFromUrlEncoded() throws Exception {

0 commit comments

Comments
 (0)