1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-24 00:21:08 +01:00

Return 415 rather than 400 on Urlencoded Content-Type mismatch (#3334)

Co-authored-by: Rob Ede <robjtede@icloud.com>
This commit is contained in:
Matt Palmer 2024-06-10 11:19:35 +10:00 committed by GitHub
parent 53086a90a6
commit 59e42c1446
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 1 deletions

View File

@ -5,6 +5,7 @@
### Fixed ### Fixed
- `ConnectionInfo::realip_remote_addr()` now handles IPv6 addresses from `Forwarded` header correctly. Previously, it sometimes returned the forwarded port as well. - `ConnectionInfo::realip_remote_addr()` now handles IPv6 addresses from `Forwarded` header correctly. Previously, it sometimes returned the forwarded port as well.
- The `UrlencodedError::ContentType` variant (relevant to the `Form` extractor) now uses the 415 (Media Type Unsupported) status code in it's `ResponseError` implementation.
## 4.7.0 ## 4.7.0

View File

@ -100,6 +100,7 @@ impl ResponseError for UrlencodedError {
match self { match self {
Self::Overflow { .. } => StatusCode::PAYLOAD_TOO_LARGE, Self::Overflow { .. } => StatusCode::PAYLOAD_TOO_LARGE,
Self::UnknownLength => StatusCode::LENGTH_REQUIRED, Self::UnknownLength => StatusCode::LENGTH_REQUIRED,
Self::ContentType => StatusCode::UNSUPPORTED_MEDIA_TYPE,
Self::Payload(err) => err.status_code(), Self::Payload(err) => err.status_code(),
_ => StatusCode::BAD_REQUEST, _ => StatusCode::BAD_REQUEST,
} }
@ -232,7 +233,7 @@ mod tests {
let resp = UrlencodedError::UnknownLength.error_response(); let resp = UrlencodedError::UnknownLength.error_response();
assert_eq!(resp.status(), StatusCode::LENGTH_REQUIRED); assert_eq!(resp.status(), StatusCode::LENGTH_REQUIRED);
let resp = UrlencodedError::ContentType.error_response(); let resp = UrlencodedError::ContentType.error_response();
assert_eq!(resp.status(), StatusCode::BAD_REQUEST); assert_eq!(resp.status(), StatusCode::UNSUPPORTED_MEDIA_TYPE);
} }
#[test] #[test]