You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Olivier Jacquemart (Jira)" <ji...@apache.org> on 2024/10/11 07:13:00 UTC
[jira] [Updated] (CAMEL-21339) Client request validation and empty body
[ https://issues.apache.org/jira/browse/CAMEL-21339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Olivier Jacquemart updated CAMEL-21339:
---------------------------------------
Description:
If you enable the client request validation at a global level, and have a GET rest endpoint, there is no need for a body validation.
The problem is if the client sends the Content-type aplication/json. The Content-Type is not needed tbut I got the issue because a client sends this header all the time and I can't change it.
I faced the issue while upgrading an application from 3.20.6 to 4.8.0. I
Here are curl examples:
{code:java}
# succeeds
$ curl localhost:8080/api/hello
{"message":"hello world"}
# fails
$ curl -H "Content-Type: application/json" localhost:8080/api/hello
Invalid JSon payload.{code}
In the problematic case, the [DefaultRestClientRequestValidator|https://github.com/apache/camel/blob/main/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultRestClientRequestValidator.java] will try to deserialize the json against an empty string and will fail because it's not a valid json.
was:
If you enable the client request validation at a global level, and have a GET rest endpoint, there is no need for a body validation.
The problem is if the client sends the Content-type aplication/json. The Content-Type is not needed too but I got the issue because of a client sends this header all the time and I can't change it.
I faced the issue while upgrading an application from 3.20.6 to 4.8.0. I
Here are curl examples:
{code:java}
# succeeds
$ curl localhost:8080/api/hello
{"message":"hello world"}
# fails
$ curl -H "Content-Type: application/json" localhost:8080/api/hello
Invalid JSon payload.{code}
In the problematic case, the [DefaultRestClientRequestValidator|https://github.com/apache/camel/blob/main/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultRestClientRequestValidator.java] will try to deserialize the json against an empty string and will fail because it's not a valid json.
> Client request validation and empty body
> ----------------------------------------
>
> Key: CAMEL-21339
> URL: https://issues.apache.org/jira/browse/CAMEL-21339
> Project: Camel
> Issue Type: Bug
> Components: came-core
> Affects Versions: 4.8.0
> Reporter: Olivier Jacquemart
> Priority: Minor
>
> If you enable the client request validation at a global level, and have a GET rest endpoint, there is no need for a body validation.
> The problem is if the client sends the Content-type aplication/json. The Content-Type is not needed tbut I got the issue because a client sends this header all the time and I can't change it.
> I faced the issue while upgrading an application from 3.20.6 to 4.8.0. I
> Here are curl examples:
> {code:java}
> # succeeds
> $ curl localhost:8080/api/hello
> {"message":"hello world"}
> # fails
> $ curl -H "Content-Type: application/json" localhost:8080/api/hello
> Invalid JSon payload.{code}
>
> In the problematic case, the [DefaultRestClientRequestValidator|https://github.com/apache/camel/blob/main/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultRestClientRequestValidator.java] will try to deserialize the json against an empty string and will fail because it's not a valid json.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)