Olivier Jacquemart created CAMEL-21339:
------------------------------------------
Summary: 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
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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)