-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add semicolonIsNormalChar and maxParams properties to the server config #11416
base: 4.8.x
Are you sure you want to change the base?
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,4 +26,10 @@ public interface FormConfiguration { | |
* @return default maximum of decoded key value parameters. It defaults to 1024. | ||
*/ | ||
int getMaxDecodedKeyValueParameters(); | ||
|
||
/** | ||
* @return true if the semicolon handle as a normal character, false otherwise. | ||
*/ | ||
boolean isSemicolonIsNormalChar(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. to avoid a breaking change this should be a default method that returns There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fixed |
||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,7 +34,15 @@ final class FormConfigurationProperties implements FormConfiguration { | |
@SuppressWarnings("WeakerAccess") | ||
private static final int DEFAULT_MAX_DECODED_KEY_VALUE_PARAMETERS = 1024; | ||
|
||
/** | ||
* Default value indicating whether the semicolon is treated as a normal character | ||
* used in {@link io.micronaut.http.form.FormUrlEncodedDecoder}. | ||
*/ | ||
@SuppressWarnings("WeakerAccess") | ||
private static final boolean DEFAULT_SEMICOLON_IS_NORMAL_CHAR = false; | ||
|
||
private int maxDecodedKeyValueParameters = DEFAULT_MAX_DECODED_KEY_VALUE_PARAMETERS; | ||
private boolean semicolonIsNormalChar = DEFAULT_SEMICOLON_IS_NORMAL_CHAR; | ||
|
||
/** | ||
* | ||
|
@@ -45,11 +53,27 @@ public int getMaxDecodedKeyValueParameters() { | |
return maxDecodedKeyValueParameters; | ||
} | ||
|
||
|
||
/** | ||
* @return true if the semicolon is treated as a normal character, false otherwise | ||
*/ | ||
@Override | ||
public boolean isSemicolonIsNormalChar() { | ||
return semicolonIsNormalChar; | ||
} | ||
|
||
/** | ||
* default maximum of decoded key value parameters. Default value {@link #DEFAULT_MAX_DECODED_KEY_VALUE_PARAMETERS}. | ||
* @param maxDecodedKeyValueParameters default maximum of decoded key value parameters | ||
*/ | ||
public void setMaxDecodedKeyValueParameters(int maxDecodedKeyValueParameters) { | ||
this.maxDecodedKeyValueParameters = maxDecodedKeyValueParameters; | ||
} | ||
|
||
/** | ||
* @param semicolonIsNormalChar true if the semicolon should be treated as a normal character, false otherwise | ||
*/ | ||
public void setSemicolonIsNormalChar(boolean semicolonIsNormalChar) { | ||
this.semicolonIsNormalChar = semicolonIsNormalChar; | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see any changes to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fixed |
||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure this belongs in
HttpServerConfiguration
since I am unsure the other server implementations (jetty, tomcat etc.) allow this kind of configuration. For the moment it should be moved toNettyHttpServerConfiguration
. @yawkat WDYT?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm actually since this also affects our non-netty copy of QueryStringDecoder, I guess it's fine here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@graemerocher AbstractNettyHttpRequest uses HttpServerConfig interface for a config field, that's why i wrote it there, but it seems strange to me too, i think it should use NettyHttpServerConfig interface due to strong AbstractNettyHttpRequest bind to Netty