mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
WW-5310 Properly parses param value with equal sign
This commit is contained in:
@@ -55,19 +55,16 @@ public class StrutsQueryStringParser implements QueryStringParser {
|
||||
LOG.debug("Param [{}] is blank, skipping", param);
|
||||
continue;
|
||||
}
|
||||
|
||||
String[] tmpParams = param.split("=");
|
||||
String paramName = null;
|
||||
String paramName;
|
||||
String paramValue = "";
|
||||
if (tmpParams.length > 0) {
|
||||
paramName = tmpParams[0];
|
||||
}
|
||||
if (tmpParams.length > 1) {
|
||||
paramValue = tmpParams[1];
|
||||
}
|
||||
if (paramName != null) {
|
||||
extractParam(paramName, paramValue, queryParams, forceValueArray);
|
||||
int index = param.indexOf("=");
|
||||
if (index > -1) {
|
||||
paramName = param.substring(0, index);
|
||||
paramValue = param.substring(index + 1);
|
||||
} else {
|
||||
paramName = param;
|
||||
}
|
||||
extractParam(paramName, paramValue, queryParams, forceValueArray);
|
||||
}
|
||||
return queryParams;
|
||||
}
|
||||
|
||||
@@ -76,6 +76,33 @@ public class StrutsQueryStringParserTest {
|
||||
assertEquals("value with space", queryParameters.get("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldProperlySplitParamsWithDoubleEqualSign() {
|
||||
Map<String, Object> queryParameters = parser.parse("id1=n123=&id2=n3456", false);
|
||||
|
||||
assertTrue(queryParameters.containsKey("id1"));
|
||||
assertTrue(queryParameters.containsKey("id2"));
|
||||
assertEquals("n123=", queryParameters.get("id1"));
|
||||
assertEquals("n3456", queryParameters.get("id2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldHandleParamWithNoValue1() {
|
||||
Map<String, Object> queryParameters = parser.parse("paramNoValue", false);
|
||||
|
||||
assertTrue(queryParameters.containsKey("paramNoValue"));
|
||||
assertEquals("", queryParameters.get("paramNoValue"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldHandleParamWithNoValue2() {
|
||||
Map<String, Object> queryParameters = parser.parse("paramNoValue¶m1=1234", false);
|
||||
|
||||
assertTrue(queryParameters.containsKey("paramNoValue"));
|
||||
assertTrue(queryParameters.containsKey("param1"));
|
||||
assertEquals("1234", queryParameters.get("param1"));
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
this.parser = new StrutsQueryStringParser(new StrutsUrlDecoder());
|
||||
|
||||
Reference in New Issue
Block a user