diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java
index f210bb1db2e..a19abad9855 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java
@@ -14,6 +14,9 @@
package org.eclipse.jetty.servlet;
import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -464,11 +467,12 @@ public class ServletHolder extends Holder
A typical configuration could be: *
@@ -105,7 +108,8 @@ public class CrossOriginFilter implements Filter public static final String PREFLIGHT_MAX_AGE_PARAM = "preflightMaxAge"; public static final String ALLOW_CREDENTIALS_PARAM = "allowCredentials"; public static final String EXPOSED_HEADERS_PARAM = "exposedHeaders"; - public static final String FORWARD_PREFLIGHT_PARAM = "forwardPreflight"; + public static final String OLD_CHAIN_PREFLIGHT_PARAM = "forwardPreflight"; + public static final String CHAIN_PREFLIGHT_PARAM = "chainPreflight"; private static final String ANY_ORIGIN = "*"; private static final ListSIMPLE_HTTP_METHODS = Arrays.asList("GET", "POST", "HEAD"); @@ -116,7 +120,7 @@ public class CrossOriginFilter implements Filter private List exposedHeaders = new ArrayList (); private int preflightMaxAge; private boolean allowCredentials; - private boolean forwardPreflight; + private boolean chainPreflight; public void init(FilterConfig config) throws ServletException { @@ -174,10 +178,14 @@ public class CrossOriginFilter implements Filter exposedHeadersConfig = ""; exposedHeaders.addAll(Arrays.asList(exposedHeadersConfig.split(","))); - String forwardPreflightConfig = config.getInitParameter(FORWARD_PREFLIGHT_PARAM); - if (forwardPreflightConfig == null) - forwardPreflightConfig = "true"; - forwardPreflight = Boolean.parseBoolean(forwardPreflightConfig); + String chainPreflightConfig = config.getInitParameter(OLD_CHAIN_PREFLIGHT_PARAM); + if (chainPreflightConfig!=null) // TODO remove this + LOG.warn("DEPRECATED CONFIGURATION: Use "+CHAIN_PREFLIGHT_PARAM+ " instead of "+OLD_CHAIN_PREFLIGHT_PARAM); + else + chainPreflightConfig = config.getInitParameter(CHAIN_PREFLIGHT_PARAM); + if (chainPreflightConfig == null) + chainPreflightConfig = "true"; + chainPreflight = Boolean.parseBoolean(chainPreflightConfig); if (LOG.isDebugEnabled()) { @@ -188,7 +196,7 @@ public class CrossOriginFilter implements Filter PREFLIGHT_MAX_AGE_PARAM + " = " + preflightMaxAgeConfig + ", " + ALLOW_CREDENTIALS_PARAM + " = " + allowedCredentialsConfig + "," + EXPOSED_HEADERS_PARAM + " = " + exposedHeadersConfig + "," + - FORWARD_PREFLIGHT_PARAM + " = " + forwardPreflightConfig + CHAIN_PREFLIGHT_PARAM + " = " + chainPreflightConfig ); } } @@ -215,7 +223,7 @@ public class CrossOriginFilter implements Filter { LOG.debug("Cross-origin request to {} is a preflight cross-origin request", request.getRequestURI()); handlePreflightResponse(request, response, origin); - if (forwardPreflight) + if (chainPreflight) LOG.debug("Preflight cross-origin request to {} forwarded to application", request.getRequestURI()); else return; diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/CrossOriginFilterTest.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/CrossOriginFilterTest.java index d33c43152ce..3c1f70d013f 100644 --- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/CrossOriginFilterTest.java +++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/CrossOriginFilterTest.java @@ -406,11 +406,11 @@ public class CrossOriginFilterTest } @Test - public void testForwardPreflightRequest() throws Exception + public void testChainPreflightRequest() throws Exception { FilterHolder filterHolder = new FilterHolder(new CrossOriginFilter()); filterHolder.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "PUT"); - filterHolder.setInitParameter(CrossOriginFilter.FORWARD_PREFLIGHT_PARAM, "false"); + filterHolder.setInitParameter(CrossOriginFilter.CHAIN_PREFLIGHT_PARAM, "false"); tester.getContext().addFilter(filterHolder, "/*", FilterMapping.DEFAULT); CountDownLatch latch = new CountDownLatch(1);