Skip to content

Commit 44da775

Browse files
committed
CorsInterceptor skips async dispatch
Closes gh-24223
1 parent 0eacb44 commit 44da775

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java

+8
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.springframework.util.PathMatcher;
3737
import org.springframework.web.HttpRequestHandler;
3838
import org.springframework.web.context.request.WebRequestInterceptor;
39+
import org.springframework.web.context.request.async.WebAsyncManager;
40+
import org.springframework.web.context.request.async.WebAsyncUtils;
3941
import org.springframework.web.context.support.WebApplicationObjectSupport;
4042
import org.springframework.web.cors.CorsConfiguration;
4143
import org.springframework.web.cors.CorsConfigurationSource;
@@ -571,6 +573,12 @@ public CorsInterceptor(@Nullable CorsConfiguration config) {
571573
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
572574
throws Exception {
573575

576+
// Consistent with CorsFilter, ignore ASYNC dispatches
577+
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
578+
if (asyncManager.hasConcurrentResult()) {
579+
return true;
580+
}
581+
574582
return corsProcessor.processRequest(this.config, request, response);
575583
}
576584

0 commit comments

Comments
 (0)