Java Jetty CORS Filter

40 Views Asked by At

I am attempting to add CORS header to all responses from a jetty server, serving static content.

This is the responsible code:

private Server initServer() {
        Server staticServer = new Server(8181);

        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/");

        // Add the CrossOriginFilter
        FilterHolder filterHolder = getFilterHolder();
        context.addFilter(filterHolder, "/*", EnumSet.allOf(DispatcherType.class));

        ResourceHandler resourceHandler = new ResourceHandler();
        resourceHandler.setDirAllowed(true);
        resourceHandler.setDirectoriesListed(true);
        resourceHandler.setResourceBase(DIR_ASSETS.toString());
        context.insertHandler(resourceHandler);
        staticServer.setHandler(context);
        return staticServer;
    }

    private static FilterHolder getFilterHolder() {
        FilterHolder filterHolder = new FilterHolder(new CrossOriginFilter());
        filterHolder.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
        filterHolder.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, "*");
        filterHolder.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,POST,HEAD");
        filterHolder.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin");
        return filterHolder;
    }

EDIT:

What's happening is that no CORS headers are getting appended to any response. Does anyone see a glaring issue with the config (or even the question being posed)?

0

There are 0 best solutions below