You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Ron Cecchini <ro...@comcast.net> on 2020/08/07 05:57:12 UTC

Enabling global CORS support

Hi, guys.

I have a Camel (3.4.2) + Spring Boot (2.3.1.RELEASE) web service using Undertow.

I ran into my first CORS (cross-origin resource sharing) issue, googled around, and solved it with @CrossOrigin.

My question has to do with why I could *not* solve it with restConfiguration().enableCORS(true) ?

With or without enableCORS(true), my headers were coming back:

    Connection         keep-alive
    Content-Type       application/json
    Date               Thu, 06 Aug 2020 22:47:53 GMT
    Transfer-Encoding  chunked

Only when I started using @CrossOrigin with all of my @RestController classes did I start getting:

    Connection         keep-alive
    Content-Type       application/json
    Date               Thu, 06 Aug 2020 22:54:47 GMT
    Transfer-Encoding  chunked
    Vary               Origin, Access-Control-Request-Method, Access-Control-Request-Headers

And all of my CORS problems went away.

But I imagine it *must* be possible to do the @CrossOrigin in a global way via the restConfiguration().

So what's the magic sauce I'm missing?

Is there something I should be doing with setCorsHeaders() and/or corsHeaderProperty()?
I would think not given the defaults listed at:
https://camel.apache.org/manual/latest/rest-dsl.html#_default_cors_headers

I'm suspecting some Annotation Sorcery I'm not aware of...

Thanks.

Re: Enabling global CORS support

Posted by Mark Nuttall <mk...@gmail.com>.
I am pretty sure it is because the annotation is Spring and the other is
Camel and Spring is in control, not Camel. For a global way with spring,
see this -
https://spring.io/guides/gs/rest-service-cors/

On Fri, Aug 7, 2020 at 1:57 AM Ron Cecchini <ro...@comcast.net> wrote:

>
> Hi, guys.
>
> I have a Camel (3.4.2) + Spring Boot (2.3.1.RELEASE) web service using
> Undertow.
>
> I ran into my first CORS (cross-origin resource sharing) issue, googled
> around, and solved it with @CrossOrigin.
>
> My question has to do with why I could *not* solve it with
> restConfiguration().enableCORS(true) ?
>
> With or without enableCORS(true), my headers were coming back:
>
>     Connection         keep-alive
>     Content-Type       application/json
>     Date               Thu, 06 Aug 2020 22:47:53 GMT
>     Transfer-Encoding  chunked
>
> Only when I started using @CrossOrigin with all of my @RestController
> classes did I start getting:
>
>     Connection         keep-alive
>     Content-Type       application/json
>     Date               Thu, 06 Aug 2020 22:54:47 GMT
>     Transfer-Encoding  chunked
>     Vary               Origin, Access-Control-Request-Method,
> Access-Control-Request-Headers
>
> And all of my CORS problems went away.
>
> But I imagine it *must* be possible to do the @CrossOrigin in a global way
> via the restConfiguration().
>
> So what's the magic sauce I'm missing?
>
> Is there something I should be doing with setCorsHeaders() and/or
> corsHeaderProperty()?
> I would think not given the defaults listed at:
> https://camel.apache.org/manual/latest/rest-dsl.html#_default_cors_headers
>
> I'm suspecting some Annotation Sorcery I'm not aware of...
>
> Thanks.
>