Skip to content

Commit 9901c38

Browse files
committed
Improve logging of DefaultCorsProcessor for rejected headers
Issue: SPR-15708
1 parent 1fa8410 commit 9901c38

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

spring-web/src/main/java/org/springframework/web/cors/DefaultCorsProcessor.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,24 @@ protected boolean handleInternal(ServerHttpRequest request, ServerHttpResponse r
119119

120120
String requestOrigin = request.getHeaders().getOrigin();
121121
String allowOrigin = checkOrigin(config, requestOrigin);
122+
if (allowOrigin == null) {
123+
logger.debug("Rejecting CORS request because '" + requestOrigin + "' origin is not allowed");
124+
rejectRequest(response);
125+
return false;
126+
}
122127

123128
HttpMethod requestMethod = getMethodToUse(request, preFlightRequest);
124129
List<HttpMethod> allowMethods = checkMethods(config, requestMethod);
130+
if (allowMethods == null) {
131+
logger.debug("Rejecting CORS request because '" + requestMethod + "' request method is not allowed");
132+
rejectRequest(response);
133+
return false;
134+
}
125135

126136
List<String> requestHeaders = getHeadersToUse(request, preFlightRequest);
127137
List<String> allowHeaders = checkHeaders(config, requestHeaders);
128-
129-
if (allowOrigin == null || allowMethods == null || (preFlightRequest && allowHeaders == null)) {
138+
if (preFlightRequest && allowHeaders == null) {
139+
logger.debug("Rejecting CORS request because '" + requestHeaders + "' request headers are not allowed");
130140
rejectRequest(response);
131141
return false;
132142
}

spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,24 @@ protected boolean handleInternal(ServerWebExchange exchange,
108108

109109
String requestOrigin = request.getHeaders().getOrigin();
110110
String allowOrigin = checkOrigin(config, requestOrigin);
111+
if (allowOrigin == null) {
112+
logger.debug("Rejecting CORS request because '" + requestOrigin + "' origin is not allowed");
113+
rejectRequest(response);
114+
return false;
115+
}
111116

112117
HttpMethod requestMethod = getMethodToUse(request, preFlightRequest);
113118
List<HttpMethod> allowMethods = checkMethods(config, requestMethod);
119+
if (allowMethods == null) {
120+
logger.debug("Rejecting CORS request because '" + requestMethod + "' request method is not allowed");
121+
rejectRequest(response);
122+
return false;
123+
}
114124

115125
List<String> requestHeaders = getHeadersToUse(request, preFlightRequest);
116126
List<String> allowHeaders = checkHeaders(config, requestHeaders);
117-
118-
if (allowOrigin == null || allowMethods == null || (preFlightRequest && allowHeaders == null)) {
127+
if (preFlightRequest && allowHeaders == null) {
128+
logger.debug("Rejecting CORS request because '" + requestHeaders + "' request headers are not allowed");
119129
rejectRequest(response);
120130
return false;
121131
}

0 commit comments

Comments
 (0)