Browse Source

Trim last allowed origin in comma-delimited list

See gh-33181
pull/33365/head
kevin.kep 1 year ago committed by rstoyanchev
parent
commit
2fe7ab1f92
  1. 2
      spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
  2. 5
      spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java

2
spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java

@ -281,7 +281,7 @@ public class CorsConfiguration { @@ -281,7 +281,7 @@ public class CorsConfiguration {
}
}
if (start < rawValue.length()) {
valueConsumer.accept(rawValue.substring(start));
valueConsumer.accept(rawValue.substring(start).trim());
}
}

5
spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java

@ -305,6 +305,11 @@ class CorsConfigurationTests { @@ -305,6 +305,11 @@ class CorsConfigurationTests {
assertThat(config.checkOrigin("https://a1.com")).isEqualTo("https://a1.com");
assertThat(config.checkOrigin("https://a2.com/")).isEqualTo("https://a2.com/");
// comma-delimited origins list with space
config.setAllowedOrigins(Collections.singletonList("https://a1.com, https://a2.com"));
assertThat(config.checkOrigin("https://a1.com")).isEqualTo("https://a1.com");
assertThat(config.checkOrigin("https://a2.com/")).isEqualTo("https://a2.com/");
// specific origin matches Origin header with or without trailing "/"
config.setAllowedOrigins(Collections.singletonList("https://domain.com"));
assertThat(config.checkOrigin("https://domain.com")).isEqualTo("https://domain.com");

Loading…
Cancel
Save