diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java index 0aec80af1d..1bac257de3 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMapping.java @@ -365,6 +365,7 @@ public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMe if (result.contains(HttpMethod.GET)) { result.add(HttpMethod.HEAD); } + result.add(HttpMethod.OPTIONS); return result; } } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java index 547aff6da4..1bd343e68b 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java @@ -195,8 +195,8 @@ public class RequestMappingInfoHandlerMappingTests { List allMethodExceptTrace = new ArrayList<>(Arrays.asList(HttpMethod.values())); allMethodExceptTrace.remove(HttpMethod.TRACE); - testHttpOptions("/foo", EnumSet.of(HttpMethod.GET, HttpMethod.HEAD)); - testHttpOptions("/person/1", EnumSet.of(HttpMethod.PUT)); + testHttpOptions("/foo", EnumSet.of(HttpMethod.GET, HttpMethod.HEAD, HttpMethod.OPTIONS)); + testHttpOptions("/person/1", EnumSet.of(HttpMethod.PUT, HttpMethod.OPTIONS)); testHttpOptions("/persons", EnumSet.copyOf(allMethodExceptTrace)); testHttpOptions("/something", EnumSet.of(HttpMethod.PUT, HttpMethod.POST)); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java index 6ff9c0e625..50dad4c2f5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java @@ -443,6 +443,7 @@ public abstract class RequestMappingInfoHandlerMapping extends AbstractHandlerMe result.add(HttpMethod.HEAD); } } + result.add(HttpMethod.OPTIONS); } return result; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java index 9dcd5ce513..4a19f6b4fb 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMappingTests.java @@ -172,8 +172,8 @@ public class RequestMappingInfoHandlerMappingTests { @Test public void getHandlerHttpOptions() throws Exception { - testHttpOptions("/foo", "GET,HEAD"); - testHttpOptions("/person/1", "PUT"); + testHttpOptions("/foo", "GET,HEAD,OPTIONS"); + testHttpOptions("/person/1", "PUT,OPTIONS"); testHttpOptions("/persons", "GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS"); testHttpOptions("/something", "PUT,POST"); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletAnnotationControllerHandlerMethodTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletAnnotationControllerHandlerMethodTests.java index 05709b9b03..b0207a9b6c 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletAnnotationControllerHandlerMethodTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletAnnotationControllerHandlerMethodTests.java @@ -1776,7 +1776,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl getServlet().service(request, response); assertEquals(200, response.getStatus()); - assertEquals("GET,HEAD", response.getHeader("Allow")); + assertEquals("GET,HEAD,OPTIONS", response.getHeader("Allow")); assertTrue(response.getContentAsByteArray().length == 0); }