Limit SpEL expression length
This commit enforces a limit of the maximum size of a single SpEL expression. Closes gh-30325
This commit is contained in:
committed by
Brian Clozel
parent
bc1511d667
commit
b73f5fcac2
@@ -60,6 +60,20 @@ class EvaluationTests extends AbstractExpressionTests {
|
||||
@Nested
|
||||
class MiscellaneousTests {
|
||||
|
||||
@Test
|
||||
void expressionLength() {
|
||||
String expression = "'X' + '%s'".formatted(" ".repeat(9_992));
|
||||
assertThat(expression).hasSize(10_000);
|
||||
Expression expr = parser.parseExpression(expression);
|
||||
String result = expr.getValue(context, String.class);
|
||||
assertThat(result).hasSize(9_993);
|
||||
assertThat(result.trim()).isEqualTo("X");
|
||||
|
||||
expression = "'X' + '%s'".formatted(" ".repeat(9_993));
|
||||
assertThat(expression).hasSize(10_001);
|
||||
evaluateAndCheckError(expression, String.class, SpelMessage.MAX_EXPRESSION_LENGTH_EXCEEDED);
|
||||
}
|
||||
|
||||
@Test
|
||||
void createListsOnAttemptToIndexNull01() throws EvaluationException, ParseException {
|
||||
ExpressionParser parser = new SpelExpressionParser(new SpelParserConfiguration(true, true));
|
||||
|
||||
Reference in New Issue
Block a user