Fix Json extractor to be 32kB by default

While technically the default limit for `JsonBody` is indeed 256kB when
called through `JsonBody::new`, in practice the limit is always set to
32kB for every context where `JsonBody` is used (via `JsonConfig`).
This is also consistent with the documentation of the
`JsonError::Overflow`, which mentions a default maximum of `32kB`.

This commit changes the default to also be `32kB` instead of `256kB`.
This commit is contained in:
Janis Goldschmidt 2021-02-18 13:03:10 +01:00
parent 1838d9cd0f
commit 05011930bb
No known key found for this signature in database
GPG Key ID: CDCB5673C752F45B
2 changed files with 5 additions and 2 deletions

View File

@ -3,8 +3,11 @@
## Unreleased - 2021-xx-xx ## Unreleased - 2021-xx-xx
### Changed ### Changed
* Feature `cookies` is now optional and enabled by default. [#1981] * Feature `cookies` is now optional and enabled by default. [#1981]
* `JsonBody::new` returns a default limit of 32kB to be consistent with `JsonConfig` and the
default behaviour of the `web::Json<T>` extractor. [#2010]
[#1981]: https://github.com/actix/actix-web/pull/1981 [#1981]: https://github.com/actix/actix-web/pull/1981
[#2010]: https://github.com/actix/actix-web/pull/2010
## 4.0.0-beta.3 - 2021-02-10 ## 4.0.0-beta.3 - 2021-02-10

View File

@ -345,7 +345,7 @@ where
let payload = payload.take(); let payload = payload.take();
JsonBody::Body { JsonBody::Body {
limit: 262_144, limit: 32_768,
length, length,
payload, payload,
buf: BytesMut::with_capacity(8192), buf: BytesMut::with_capacity(8192),
@ -353,7 +353,7 @@ where
} }
} }
/// Set maximum accepted payload size. The default limit is 256kB. /// Set maximum accepted payload size. The default limit is 32kB.
pub fn limit(self, limit: usize) -> Self { pub fn limit(self, limit: usize) -> Self {
match self { match self {
JsonBody::Body { JsonBody::Body {