[ https://issues.apache.org/jira/browse/CAMEL-16560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Netherton resolved CAMEL-16560. ------------------------------------- Resolution: Fixed > Consider empty string in clientRequestValidation for REST HTTP body > ------------------------------------------------------------------- > > Key: CAMEL-16560 > URL: https://issues.apache.org/jira/browse/CAMEL-16560 > Project: Camel > Issue Type: Improvement > Reporter: James Netherton > Assignee: James Netherton > Priority: Major > Fix For: 3.10.0 > > > Small thing I noticed when configuring a REST route with > clientRequestValidation = true with camel-platform-http-vertx. E.g like: > {code:java} > .post("/validation") > .clientRequestValidation(true) > .param().name("foo").type(RestParamType.body).required(true).endParam() > .route() > .setBody(simple("Hello ${header.foo}")) > .endRest() > {code} > If I don't provide a body in the POST request, then I'd expect a 400 status > code. But it actually returns 200 as the Vert.x body handler initialises an > empty Buffer which when converted to String results in an empty String. > [https://github.com/apache/camel/blob/80b92e3624ae5db59a1a24a441f1b10b39eaa1a5/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java#L270] > Thus this condition is false and Camel thinks the request is valid: > [https://github.com/apache/camel/blob/80b92e3624ae5db59a1a24a441f1b10b39eaa1a5/core/camel-core-processor/src/main/java/org/apache/camel/processor/RestBindingAdvice.java#L275] > Maybe instead of checking for null it should do ObjectHelper.isEmpty? Not > sure if that is a 'safe' thing to do or if there's some scenario where an > empty string body has some kind of meaning? -- This message was sent by Atlassian Jira (v8.3.4#803005)