@ -50,28 +50,28 @@ public class CorsConfigurationTests {
@@ -50,28 +50,28 @@ public class CorsConfigurationTests {
assertThat ( config . getAllowCredentials ( ) ) . isNull ( ) ;
config . setMaxAge ( ( Long ) null ) ;
assertThat ( config . getMaxAge ( ) ) . isNull ( ) ;
config . setAllowedOrigins Patterns ( null ) ;
assertThat ( config . getAllowedOrigins Patterns ( ) ) . isNull ( ) ;
config . setAllowedOriginPatterns ( null ) ;
assertThat ( config . getAllowedOriginPatterns ( ) ) . isNull ( ) ;
}
@Test
public void setValues ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
config . addAllowedOrigin ( "*" ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
config . addAllowedHeader ( "*" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "*" ) ;
config . addAllowedMethod ( "*" ) ;
assertThat ( config . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedMethods ( ) ) . containsExactly ( "*" ) ;
config . addExposedHeader ( "header1" ) ;
config . addExposedHeader ( "header2" ) ;
assertThat ( config . getExposedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" , "header2" ) ) ;
assertThat ( config . getExposedHeaders ( ) ) . containsExactly ( "header1" , "header2" ) ;
config . setAllowCredentials ( true ) ;
assertThat ( ( boolean ) config . getAllowCredentials ( ) ) . isTrue ( ) ;
assertThat ( config . getAllowCredentials ( ) ) . isTrue ( ) ;
config . setMaxAge ( 123L ) ;
assertThat ( config . getMaxAge ( ) ) . isEqualTo ( new Long ( 123 ) ) ;
config . addAllowedOriginPattern ( ".*\\.example\\.com" ) ;
assertThat ( config . getAllowedOrigins Patterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.example\\.com" ) ) ;
assertThat ( config . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.example\\.com" ) ;
}
@Test
@ -84,16 +84,16 @@ public class CorsConfigurationTests {
@@ -84,16 +84,16 @@ public class CorsConfigurationTests {
@Test
public void asteriskWildCardOnSetExposedHeaders ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
assertThatIllegalArgumentException ( ) . isThrownBy ( ( ) - >
config . setExposedHeaders ( Arrays . as List( "*" ) ) ) ;
assertThatIllegalArgumentException ( )
. isThrownBy ( ( ) - > config . setExposedHeaders ( Collections . singleton List( "*" ) ) ) ;
}
@Test
public void combineWithNull ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
config . setAllowedOrigins ( Arrays . as List( "*" ) ) ;
config . setAllowedOrigins ( Collections . singleton List( "*" ) ) ;
config . combine ( null ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
}
@Test
@ -105,16 +105,17 @@ public class CorsConfigurationTests {
@@ -105,16 +105,17 @@ public class CorsConfigurationTests {
config . addAllowedMethod ( HttpMethod . GET . name ( ) ) ;
config . setMaxAge ( 123L ) ;
config . setAllowCredentials ( true ) ;
config . setAllowedOrigins Patterns ( Arrays . as List( ".*\\.example\\.com" ) ) ;
config . setAllowedOriginPatterns ( Collections . singleton List( ".*\\.example\\.com" ) ) ;
CorsConfiguration other = new CorsConfiguration ( ) ;
config = config . combine ( other ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" ) ) ;
assertThat ( config . getExposedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header3" ) ) ;
assertThat ( config . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET . name ( ) ) ) ;
assertThat ( config ) . isNotNull ( ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "header1" ) ;
assertThat ( config . getExposedHeaders ( ) ) . containsExactly ( "header3" ) ;
assertThat ( config . getAllowedMethods ( ) ) . containsExactly ( HttpMethod . GET . name ( ) ) ;
assertThat ( config . getMaxAge ( ) ) . isEqualTo ( new Long ( 123 ) ) ;
assertThat ( ( boolean ) config . getAllowCredentials ( ) ) . isTrue ( ) ;
assertThat ( config . getAllowedOrigins Patterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.example\\.com" ) ) ;
assertThat ( config . getAllowCredentials ( ) ) . isTrue ( ) ;
assertThat ( config . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.example\\.com" ) ;
}
@Test // SPR-15772
@ -126,26 +127,30 @@ public class CorsConfigurationTests {
@@ -126,26 +127,30 @@ public class CorsConfigurationTests {
other . addAllowedMethod ( HttpMethod . PUT . name ( ) ) ;
CorsConfiguration combinedConfig = config . combine ( other ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain.com" ) ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . PUT . name ( ) ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "https://domain.com" ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . containsExactly ( "header1" ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . containsExactly ( HttpMethod . PUT . name ( ) ) ;
combinedConfig = other . combine ( config ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain.com" ) ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . PUT . name ( ) ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "https://domain.com" ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . containsExactly ( "header1" ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . containsExactly ( HttpMethod . PUT . name ( ) ) ;
combinedConfig = config . combine ( new CorsConfiguration ( ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET . name ( ) , HttpMethod . HEAD . name ( ) ,
HttpMethod . POST . name ( ) ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) )
. containsExactly ( HttpMethod . GET . name ( ) , HttpMethod . HEAD . name ( ) , HttpMethod . POST . name ( ) ) ;
combinedConfig = new CorsConfiguration ( ) . combine ( config ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET . name ( ) , HttpMethod . HEAD . name ( ) ,
HttpMethod . POST . name ( ) ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) )
. containsExactly ( HttpMethod . GET . name ( ) , HttpMethod . HEAD . name ( ) , HttpMethod . POST . name ( ) ) ;
}
@Test
@ -155,28 +160,32 @@ public class CorsConfigurationTests {
@@ -155,28 +160,32 @@ public class CorsConfigurationTests {
other . addAllowedOriginPattern ( ".*\\.com" ) ;
CorsConfiguration combinedConfig = other . combine ( config ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins Patterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.com" ) ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.com" ) ;
combinedConfig = config . combine ( other ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins Patterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.com" ) ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.com" ) ;
}
@Test
public void combinePatternWithDefaultPermitValuesAndCustomOrigin ( ) {
CorsConfiguration config = new CorsConfiguration ( ) . applyPermitDefaultValues ( ) ;
config . setAllowedOrigins ( Arrays . as List( "https://domain.com" ) ) ;
config . setAllowedOrigins ( Collections . singleton List( "https://domain.com" ) ) ;
CorsConfiguration other = new CorsConfiguration ( ) ;
other . addAllowedOriginPattern ( ".*\\.com" ) ;
CorsConfiguration combinedConfig = other . combine ( config ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain.com" ) ) ;
assertThat ( combinedConfig . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.com" ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "https://domain.com" ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.com" ) ;
combinedConfig = config . combine ( other ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain.com" ) ) ;
assertThat ( combinedConfig . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.com" ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "https://domain.com" ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.com" ) ;
}
@Test
@ -193,15 +202,17 @@ public class CorsConfigurationTests {
@@ -193,15 +202,17 @@ public class CorsConfigurationTests {
other . addAllowedOriginPattern ( ".*\\.company\\.com" ) ;
other . addAllowedMethod ( HttpMethod . PUT . name ( ) ) ;
CorsConfiguration combinedConfig = config . combine ( other ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*" ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*" ) ;
combinedConfig = other . combine ( config ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( "*" ) ) ;
assertThat ( combinedConfig . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*" ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . containsExactly ( "*" ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*" ) ;
}
@Test // SPR-14792
@ -224,11 +235,12 @@ public class CorsConfigurationTests {
@@ -224,11 +235,12 @@ public class CorsConfigurationTests {
other . addAllowedMethod ( HttpMethod . GET . name ( ) ) ;
other . addAllowedOriginPattern ( ".*\\.domain1\\.com" ) ;
CorsConfiguration combinedConfig = config . combine ( other ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain1.com" , "https://domain2.com" ) ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" , "header2" ) ) ;
assertThat ( combinedConfig . getExposedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header3" , "header4" ) ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET . name ( ) , HttpMethod . PUT . name ( ) ) ) ;
assertThat ( combinedConfig . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.domain1\\.com" , ".*\\.domain2\\.com" ) ) ;
assertThat ( combinedConfig ) . isNotNull ( ) ;
assertThat ( combinedConfig . getAllowedOrigins ( ) ) . containsExactly ( "https://domain1.com" , "https://domain2.com" ) ;
assertThat ( combinedConfig . getAllowedHeaders ( ) ) . containsExactly ( "header1" , "header2" ) ;
assertThat ( combinedConfig . getExposedHeaders ( ) ) . containsExactly ( "header3" , "header4" ) ;
assertThat ( combinedConfig . getAllowedMethods ( ) ) . containsExactly ( HttpMethod . GET . name ( ) , HttpMethod . PUT . name ( ) ) ;
assertThat ( combinedConfig . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.domain1\\.com" , ".*\\.domain2\\.com" ) ;
}
@Test
@ -250,23 +262,25 @@ public class CorsConfigurationTests {
@@ -250,23 +262,25 @@ public class CorsConfigurationTests {
other . setAllowCredentials ( false ) ;
other . addAllowedOriginPattern ( ".*\\.domain2\\.com" ) ;
config = config . combine ( other ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "https://domain1.com" , "https://domain2.com" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header1" , "header2" ) ) ;
assertThat ( config . getExposedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "header3" , "header4" ) ) ;
assertThat ( config . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET . name ( ) , HttpMethod . PUT . name ( ) ) ) ;
assertThat ( config ) . isNotNull ( ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "https://domain1.com" , "https://domain2.com" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "header1" , "header2" ) ;
assertThat ( config . getExposedHeaders ( ) ) . containsExactly ( "header3" , "header4" ) ;
assertThat ( config . getAllowedMethods ( ) ) . containsExactly ( HttpMethod . GET . name ( ) , HttpMethod . PUT . name ( ) ) ;
assertThat ( config . getMaxAge ( ) ) . isEqualTo ( new Long ( 456 ) ) ;
assertThat ( ( boolean ) config . getAllowCredentials ( ) ) . isFalse ( ) ;
assertThat ( config . getAllowedOriginsPatterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.domain1\\.com" , ".*\\.domain2\\.com" ) ) ;
assertThat ( config ) . isNotNull ( ) ;
assertThat ( config . getAllowCredentials ( ) ) . isFalse ( ) ;
assertThat ( config . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.domain1\\.com" , ".*\\.domain2\\.com" ) ;
}
@Test
public void checkOriginAllowed ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
config . setAllowedOrigins ( Arrays . as List( "*" ) ) ;
config . setAllowedOrigins ( Collections . singleton List( "*" ) ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "*" ) ;
config . setAllowCredentials ( true ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "https://domain.com" ) ;
config . setAllowedOrigins ( Arrays . as List( "https://domain.com" ) ) ;
config . setAllowedOrigins ( Collections . singleton List( "https://domain.com" ) ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "https://domain.com" ) ;
config . setAllowCredentials ( false ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "https://domain.com" ) ;
@ -279,7 +293,7 @@ public class CorsConfigurationTests {
@@ -279,7 +293,7 @@ public class CorsConfigurationTests {
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isNull ( ) ;
config . addAllowedOrigin ( "*" ) ;
assertThat ( config . checkOrigin ( null ) ) . isNull ( ) ;
config . setAllowedOrigins ( Arrays . as List( "https://domain1.com" ) ) ;
config . setAllowedOrigins ( Collections . singleton List( "https://domain1.com" ) ) ;
assertThat ( config . checkOrigin ( "https://domain2.com" ) ) . isNull ( ) ;
config . setAllowedOrigins ( new ArrayList < > ( ) ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isNull ( ) ;
@ -288,11 +302,11 @@ public class CorsConfigurationTests {
@@ -288,11 +302,11 @@ public class CorsConfigurationTests {
@Test
public void checkOriginPatternAllowed ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
config . setAllowedOrigins Patterns ( Arrays . as List( ".*" ) ) ;
config . setAllowedOriginPatterns ( Collections . singleton List( ".*" ) ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "*" ) ;
config . setAllowCredentials ( true ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isEqualTo ( "https://domain.com" ) ;
config . setAllowedOrigins Patterns ( Arrays . as List( ".*\\.domain\\.com" ) ) ;
config . setAllowedOriginPatterns ( Collections . singleton List( ".*\\.domain\\.com" ) ) ;
assertThat ( config . checkOrigin ( "https://example.domain.com" ) ) . isEqualTo ( "https://example.domain.com" ) ;
config . setAllowCredentials ( false ) ;
assertThat ( config . checkOrigin ( "https://example.domain.com" ) ) . isEqualTo ( "https://example.domain.com" ) ;
@ -305,21 +319,21 @@ public class CorsConfigurationTests {
@@ -305,21 +319,21 @@ public class CorsConfigurationTests {
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isNull ( ) ;
config . addAllowedOriginPattern ( ".*" ) ;
assertThat ( config . checkOrigin ( null ) ) . isNull ( ) ;
config . setAllowedOrigins Patterns ( Arrays . as List( ".*\\.domain1\\.com" ) ) ;
config . setAllowedOriginPatterns ( Collections . singleton List( ".*\\.domain1\\.com" ) ) ;
assertThat ( config . checkOrigin ( "https://domain2.com" ) ) . isNull ( ) ;
config . setAllowedOrigins Patterns ( new ArrayList < > ( ) ) ;
config . setAllowedOriginPatterns ( new ArrayList < > ( ) ) ;
assertThat ( config . checkOrigin ( "https://domain.com" ) ) . isNull ( ) ;
}
@Test
public void checkMethodAllowed ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET , HttpMethod . HEAD ) ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . containsExactly ( HttpMethod . GET , HttpMethod . HEAD ) ;
config . addAllowedMethod ( "GET" ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET ) ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . containsExactly ( HttpMethod . GET ) ;
config . addAllowedMethod ( "POST" ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET , HttpMethod . POST ) ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . POST ) ) . isEqualTo ( Arrays . asList ( HttpMethod . GET , HttpMethod . POST ) ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . GET ) ) . containsExactly ( HttpMethod . GET , HttpMethod . POST ) ;
assertThat ( config . checkHttpMethod ( HttpMethod . POST ) ) . containsExactly ( HttpMethod . GET , HttpMethod . POST ) ;
}
@Test
@ -337,21 +351,21 @@ public class CorsConfigurationTests {
@@ -337,21 +351,21 @@ public class CorsConfigurationTests {
assertThat ( config . checkHeaders ( Collections . emptyList ( ) ) ) . isEqualTo ( Collections . emptyList ( ) ) ;
config . addAllowedHeader ( "header1" ) ;
config . addAllowedHeader ( "header2" ) ;
assertThat ( config . checkHeaders ( Arrays . as List( "header1" ) ) ) . isEqualTo ( Arrays . asList ( "header1" ) ) ;
assertThat ( config . checkHeaders ( Arrays . asList ( "header1" , "header2" ) ) ) . isEqualTo ( Arrays . asList ( "header1" , "header2" ) ) ;
assertThat ( config . checkHeaders ( Arrays . asList ( "header1" , "header2" , "header3" ) ) ) . isEqualTo ( Arrays . asList ( "header1" , "header2" ) ) ;
assertThat ( config . checkHeaders ( Collections . singleton List( "header1" ) ) ) . containsExactly ( "header1" ) ;
assertThat ( config . checkHeaders ( Arrays . asList ( "header1" , "header2" ) ) ) . containsExactly ( "header1" , "header2" ) ;
assertThat ( config . checkHeaders ( Arrays . asList ( "header1" , "header2" , "header3" ) ) ) . containsExactly ( "header1" , "header2" ) ;
}
@Test
public void checkHeadersNotAllowed ( ) {
CorsConfiguration config = new CorsConfiguration ( ) ;
assertThat ( config . checkHeaders ( null ) ) . isNull ( ) ;
assertThat ( config . checkHeaders ( Arrays . as List( "header1" ) ) ) . isNull ( ) ;
assertThat ( config . checkHeaders ( Collections . singleton List( "header1" ) ) ) . isNull ( ) ;
config . setAllowedHeaders ( Collections . emptyList ( ) ) ;
assertThat ( config . checkHeaders ( Arrays . as List( "header1" ) ) ) . isNull ( ) ;
assertThat ( config . checkHeaders ( Collections . singleton List( "header1" ) ) ) . isNull ( ) ;
config . addAllowedHeader ( "header2" ) ;
config . addAllowedHeader ( "header3" ) ;
assertThat ( config . checkHeaders ( Arrays . as List( "header1" ) ) ) . isNull ( ) ;
assertThat ( config . checkHeaders ( Collections . singleton List( "header1" ) ) ) . isNull ( ) ;
}
@Test // SPR-15772
@ -360,9 +374,9 @@ public class CorsConfigurationTests {
@@ -360,9 +374,9 @@ public class CorsConfigurationTests {
config . addAllowedOrigin ( "https://domain.com" ) ;
config . addAllowedHeader ( "header1" ) ;
config . addAllowedMethod ( "PATCH" ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isEqualTo ( Arrays . asList ( "*" , "https://domain.com" ) ) ;
assertThat ( config . getAllowedHeaders ( ) ) . isEqualTo ( Arrays . asList ( "*" , "header1" ) ) ;
assertThat ( config . getAllowedMethods ( ) ) . isEqualTo ( Arrays . asList ( "GET" , "HEAD" , "POST" , "PATCH" ) ) ;
assertThat ( config . getAllowedOrigins ( ) ) . containsExactly ( "*" , "https://domain.com" ) ;
assertThat ( config . getAllowedHeaders ( ) ) . containsExactly ( "*" , "header1" ) ;
assertThat ( config . getAllowedMethods ( ) ) . containsExactly ( "GET" , "HEAD" , "POST" , "PATCH" ) ;
}
@Test
@ -371,6 +385,6 @@ public class CorsConfigurationTests {
@@ -371,6 +385,6 @@ public class CorsConfigurationTests {
config . addAllowedOriginPattern ( ".*\\.com" ) ;
config = config . applyPermitDefaultValues ( ) ;
assertThat ( config . getAllowedOrigins ( ) ) . isNull ( ) ;
assertThat ( config . getAllowedOrigins Patterns ( ) ) . isEqualTo ( Arrays . asList ( ".*\\.com" ) ) ;
assertThat ( config . getAllowedOriginPatterns ( ) ) . containsExactly ( ".*\\.com" ) ;
}
}