Cross Origin Filter mit eingebettetem Jetty

Ich versuche, einen CrossOriginFilter mit einigen eingebetteten Jetty-Servern zu betreiben, die beide in unserem internen Netzwerk ausgeführt werden. Beide führen Servlets aus, aber ich benötige die Webseite von Server A, um auf die Servlets von Server B posten zu können. Ich denke, ich muss ACCESS_CONTROL_ALLOW_ORIGIN zu einem CrossOriginFilter hinzufügen, aber herauszufinden, wie dies mit einer eingebetteten Jetty-Instanz ohne web.xml getan werden kann, erweist sich als nicht einfach. Beim Versuch, auf die serlvets von Server B zuzugreifen, wird im Browser die folgende Fehlermeldung angezeig

No 'Access-Control-Allow-Origin' header is present on the requested resource

Im Verwenden von anglejs zum Posten auf den Servlets des anderen Servers in einem Controller.

Und hier ist der Code für einen der Server (beide sind ziemlich gleich)

Server server = new Server(httpPort);

ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[] { "index.html" });
resource_handler.setResourceBase("./http/");

ServletHandler handler = new ServletHandler();
handler.addServletWithMapping(ServerPageRoot.class, "/servlet/*");

FilterHolder holder = new FilterHolder(CrossOriginFilter.class);
holder.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*");
holder.setInitParameter(CrossOriginFilter.ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, "*");
holder.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,POST,HEAD");
holder.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin");

handler.addFilter(holder );

HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resource_handler, handler,new DefaultHandler() });
server.setHandler(handlers);
server.start();

Antworten auf die Frage(8)

Ihre Antwort auf die Frage