This commit improves CORS support by:
- Using CORS processing only for CORS-enabled endpoints
- Skipping CORS processing for same-origin requests
- Adding Vary headers for non-CORS requests
It introduces an AbstractHandlerMapping#hasCorsConfigurationSource
method in order to be able to check CORS endpoints efficiently.
Closes gh-22273
Closes gh-22496
@ -62,26 +59,23 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -62,26 +59,23 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -89,17 +83,7 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -89,17 +83,7 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -110,6 +94,7 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -110,6 +94,7 @@ public class DefaultCorsProcessor implements CorsProcessor {
response.getBody().write("Invalid CORS request".getBytes(StandardCharsets.UTF_8));
response.flush();
}
/**
@ -122,9 +107,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -122,9 +107,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -51,27 +50,26 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -51,27 +50,26 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -86,10 +84,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -86,10 +84,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -107,9 +101,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@@ -107,9 +101,6 @@ public class DefaultCorsProcessor implements CorsProcessor {
@ -53,6 +54,7 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@@ -53,6 +54,7 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@ -65,7 +67,6 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@@ -65,7 +67,6 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@ -113,8 +114,14 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@@ -113,8 +114,14 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@ -175,12 +182,12 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@@ -175,12 +182,12 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
if(logger.isDebugEnabled()){
logger.debug(exchange.getLogPrefix()+"Mapped to "+handler);
@ -200,6 +207,14 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@@ -200,6 +207,14 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport
@ -370,6 +370,13 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@@ -370,6 +370,13 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@ -451,6 +458,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@@ -451,6 +458,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@ -81,7 +81,8 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@@ -81,7 +81,8 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@ -206,12 +207,17 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@@ -206,12 +207,17 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@ -420,10 +426,10 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@@ -420,10 +426,10 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
logger.debug("Mapped to "+executionChain.getHandler());
@ -488,6 +494,14 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@@ -488,6 +494,14 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@ -448,6 +448,13 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@@ -448,6 +448,13 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@ -555,6 +562,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap
@@ -555,6 +562,7 @@ public abstract class AbstractHandlerMethodMapping<T> extends AbstractHandlerMap