|
|
|
@ -549,31 +549,31 @@ public class CorsConfiguration { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Check the origin of the request against the configured allowed origins. |
|
|
|
* Check the origin of the request against the configured allowed origins. |
|
|
|
* @param requestOrigin the origin to check |
|
|
|
* @param origin the origin to check |
|
|
|
* @return the origin to use for the response, or {@code null} which |
|
|
|
* @return the origin to use for the response, or {@code null} which |
|
|
|
* means the request origin is not allowed |
|
|
|
* means the request origin is not allowed |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
public String checkOrigin(@Nullable String requestOrigin) { |
|
|
|
public String checkOrigin(@Nullable String origin) { |
|
|
|
if (!StringUtils.hasText(requestOrigin)) { |
|
|
|
if (!StringUtils.hasText(origin)) { |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
requestOrigin = trimTrailingSlash(requestOrigin); |
|
|
|
String originToCheck = trimTrailingSlash(origin); |
|
|
|
if (!ObjectUtils.isEmpty(this.allowedOrigins)) { |
|
|
|
if (!ObjectUtils.isEmpty(this.allowedOrigins)) { |
|
|
|
if (this.allowedOrigins.contains(ALL)) { |
|
|
|
if (this.allowedOrigins.contains(ALL)) { |
|
|
|
validateAllowCredentials(); |
|
|
|
validateAllowCredentials(); |
|
|
|
return ALL; |
|
|
|
return ALL; |
|
|
|
} |
|
|
|
} |
|
|
|
for (String allowedOrigin : this.allowedOrigins) { |
|
|
|
for (String allowedOrigin : this.allowedOrigins) { |
|
|
|
if (requestOrigin.equalsIgnoreCase(allowedOrigin)) { |
|
|
|
if (originToCheck.equalsIgnoreCase(allowedOrigin)) { |
|
|
|
return requestOrigin; |
|
|
|
return origin; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!ObjectUtils.isEmpty(this.allowedOriginPatterns)) { |
|
|
|
if (!ObjectUtils.isEmpty(this.allowedOriginPatterns)) { |
|
|
|
for (OriginPattern p : this.allowedOriginPatterns) { |
|
|
|
for (OriginPattern p : this.allowedOriginPatterns) { |
|
|
|
if (p.getDeclaredPattern().equals(ALL) || p.getPattern().matcher(requestOrigin).matches()) { |
|
|
|
if (p.getDeclaredPattern().equals(ALL) || p.getPattern().matcher(originToCheck).matches()) { |
|
|
|
return requestOrigin; |
|
|
|
return origin; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|