Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(SpEL): implement to configure the limit of characters for SpEL expressions #1193

Merged
merged 3 commits into from
Jul 2, 2024

Conversation

j-sandy
Copy link
Contributor

@j-sandy j-sandy commented Jun 26, 2024

Spring Expression Lanuage (SpEL) has a default limit of 10,000 characters. Springframework provides the feature to configure the limit. This feature allows to configure the limit of characters for SpEL expressions.

Approach:
In order to use an expression with characters more than the given default limit, require to follow either of the below approaches:

  1. For Springframework >=5.3.28 and <6.1.3, by setting maximumExpressionLength field while instantiating the custom SpelParserConfiguration class.
    Make maximum SpEL expression length configurable spring-projects/spring-framework#30380
    Make maximum SpEL expression length configurable spring-projects/spring-framework#30446
  2. For Springframework >=6.1.3, by setting a JVM system property or Spring property named spring.context.expression.maxLength to the maximum expression length needed by your application.
    Make maximum length of SpEL expressions in an ApplicationContext configurable spring-projects/spring-framework#31952
    spring-projects/spring-framework@7855986

Spinnaker supports spring boot 2.7.18, that brings springframework 5.3.31 [https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/dependency-versions.html#appendix.dependency-versions.propertie9]. So first approach need to be implemented along with spinnaker enhancement to expose the maximumExpressionLength field.

@j-sandy j-sandy force-pushed the spel-expr-len branch 2 times, most recently from 442a30d to b7194b2 Compare July 1, 2024 14:55
…xpressions

Spring Expression Lanuage (SpEL) has a default limit of 10,000 characters. Springframework provides the feature to configure the limit. This feature allows to configure the limit of characters for SpEL expressions.

Approach:
In order to use an expression with characters more than the given default limit, require to follow either of the below approaches:
1. For Springframework >=5.3.28 and <6.1.3, by setting `maximumExpressionLength` field while instantiating the custom `SpelParserConfiguration` class.
spring-projects/spring-framework#30380
spring-projects/spring-framework#30446
2. For Springframework >=6.1.3, by setting a JVM system property or Spring property named `spring.context.expression.maxLength` to the maximum expression length needed by your application.
spring-projects/spring-framework#31952
spring-projects/spring-framework@7855986
Spinnaker supports spring boot 2.7.18, that brings springframework 5.3.31 [https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/dependency-versions.html#appendix.dependency-versions.propertie9]. So first approach need to be implemented along with spinnaker enhancement to expose the `maximumExpressionLength` field.
@dbyron-sf dbyron-sf marked this pull request as ready for review July 1, 2024 17:45
@dbyron-sf
Copy link
Contributor

@Mergifyio update

Copy link
Contributor

mergify bot commented Jul 1, 2024

update

✅ Branch has been successfully updated

@dbyron-sf dbyron-sf added the ready to merge Approved and ready for merge label Jul 2, 2024
@mergify mergify bot added the auto merged label Jul 2, 2024
@mergify mergify bot merged commit fde56d1 into spinnaker:master Jul 2, 2024
6 checks passed
@j-sandy j-sandy deleted the spel-expr-len branch July 3, 2024 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto merged ready to merge Approved and ready for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants