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 {
} }
} }
if (start < rawValue.length()) { 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 {
assertThat(config.checkOrigin("https://a1.com")).isEqualTo("https://a1.com"); assertThat(config.checkOrigin("https://a1.com")).isEqualTo("https://a1.com");
assertThat(config.checkOrigin("https://a2.com/")).isEqualTo("https://a2.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 "/" // specific origin matches Origin header with or without trailing "/"
config.setAllowedOrigins(Collections.singletonList("https://domain.com")); config.setAllowedOrigins(Collections.singletonList("https://domain.com"));
assertThat(config.checkOrigin("https://domain.com")).isEqualTo("https://domain.com"); assertThat(config.checkOrigin("https://domain.com")).isEqualTo("https://domain.com");

Loading…
Cancel
Save