Try adding:
cors.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER,
"*");


On Thu, Jul 6, 2017 at 8:45 AM, <[email protected]> wrote:

> Hi,
>
> I have setup CORS filter in my dropwizard application as below. But I
> don't see dropwizard setting the '*Access-Control-Allow-Origin' *header
> in the server response. My browser returns a 401 Authorisation error.
> My REST endpoint (http://localhost:8199/api/iceberg/reconciliations) is
> working fine and returns a valid JSON message when invoked.
>
> Can you please advise how I can resolve this issue or find out why
> dropwizard is not setting the expected headers?
>
> *My CORS setup in dropwizard is as below*
>
> @Override
> public void run(MyAppConfiguration myAppConfiguration, Environment 
> environment) throws Exception {
>     //Force browsers to reload all js and html files for every request as 
> angular gets screwed up
>     environment.servlets()
>             .addFilter("CacheBustingFilter", new CacheBustingFilter())
>             .addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), 
> true, "/*");
>
>     enableCorsHeaders(environment);
>
> }
>
>
> private void enableCorsHeaders(Environment env) {
>         final FilterRegistration.Dynamic cors = 
> env.servlets().addFilter("CORS", CrossOriginFilter.class);
>
>         // Configure CORS parameters
>         cors.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
>         cors.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, 
> "X-Requested-With,Content-Type,Accept,Origin");
>         cors.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, 
> "OPTIONS,GET,PUT,POST,DELETE,HEAD");
>
>         // Add URL mapping
>         cors.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), 
> true, "/*");
>     }
>
>
>
>  When I call the REST endpoint from my angular application I don't see
> dropwizard returning the 'Access-Control-Allow-Origin' header on the
> response.  I also don't see any preflight requests from the application.
> The HTTP request-response is as below when the http://localhost:8199/api/
> iceberg/reconciliations is called from my angular application.
>
> GET http://localhost:8199/api/iceberg/reconciliations
> Accept: application/json, text/plain, */*
> Origin: http://localhost:4200
> X-DevTools-Emulate-Network-Conditions-Client-Id: 
> 90d7ac77-f45f-4d60-a667-a56da9e0582b
> X-DevTools-Request-Id: 7836.4077
> User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 
> (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
> Referer: http://localhost:4200/dashboard
> Accept-Encoding <http://localhost:4200/dashboardAccept-Encoding>: gzip, 
> deflate, br
> Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
> *HTTP/1.1 401 Unauthorized*
> Date: Thu, 06 Jul 2017 10:59:14 GMT
> WWW-Authenticate: BASIC realm="application"
> Content-Length: 0
>
>
>
> *CURL - OPTIONS METHOD*
>
> Moreover I checked using CURL to see  how the OPTIONS method response
> looks like from the server, I get the same not authorized 401 response.
>
> $ curl -H "Origin: http://example.com";
> -H "Access-Control-Request-Method: POST"
> -H "Access-Control-Request-Headers: X-Requested-With"
> -X OPTIONS --verbose http://localhost:8199/api/iceberg/reconciliations
>
>
> *CURL command response does not have the Access control header*
>
> * STATE: INIT => CONNECT handle 0x6000578f0; line 1410 (connection #-5000)
>     * Added connection 0. The cache now contains 1 members
>     * STATE: CONNECT => WAITRESOLVE handle 0x6000578f0; line 1446 (connection 
> #0)
>     *   Trying ::1...
>     * TCP_NODELAY set
>     * STATE: WAITRESOLVE => WAITCONNECT handle 0x6000578f0; line 1527 
> (connection #0)
>     * Connected to localhost (::1) port 8199 (#0)
>     * STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x6000578f0; line 1579 
> (connection #0)
>     * Marked for [keep alive]: HTTP default
>     * STATE: SENDPROTOCONNECT => DO handle 0x6000578f0; line 1597 (connection 
> #0)
>     > OPTIONS /api/iceberg/reconciliations HTTP/1.1
>     > Host: localhost:8199
>     > User-Agent: curl/7.54.1
>     > Accept: */*
>     > Origin: http://example.com
>     > Access-Control-Request-Method: POST
>     > Access-Control-Request-Headers: X-Requested-With
>     >
>     * STATE: DO => DO_DONE handle 0x6000578f0; line 1676 (connection #0)
>     * STATE: DO_DONE => WAITPERFORM handle 0x6000578f0; line 1801 (connection 
> #0)
>     * STATE: WAITPERFORM => PERFORM handle 0x6000578f0; line 1811 (connection 
> #0)
>     * HTTP 1.1 or later with persistent connection, pipelining supported
>     *< HTTP/1.1 401 Unauthorized*
>     < Date: Thu, 06 Jul 2017 10:53:52 GMT
>     < WWW-Authenticate: BASIC realm="application"
>     < Content-Length: 0
>
> --
> You received this message because you are subscribed to the Google Groups
> "dropwizard-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>



-- 
William Herbert
[email protected]

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to