File tree 3 files changed +11
-10
lines changed
main/java/org/springframework/security/config/annotation/web/configurers
java/org/springframework/security/config/annotation/web/configurers
kotlin/org/springframework/security/config/annotation/web
3 files changed +11
-10
lines changed Original file line number Diff line number Diff line change @@ -107,15 +107,14 @@ static class MvcCorsFilter {
107
107
* @return
108
108
*/
109
109
private static CorsFilter getMvcCorsFilter (ApplicationContext context ) {
110
- if (!context .containsBean (HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME )) {
111
- throw new NoSuchBeanDefinitionException (HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME , "A Bean named "
112
- + HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME + " of type "
113
- + HandlerMappingIntrospector .class .getName ()
114
- + " is required to use MvcRequestMatcher. Please ensure Spring Security & Spring MVC are configured in a shared ApplicationContext." );
110
+ if (context .getBeanNamesForType (CorsConfigurationSource .class ).length > 0 ) {
111
+ CorsConfigurationSource corsConfigurationSource = context
112
+ .getBean (HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME , CorsConfigurationSource .class );
113
+ return new CorsFilter (corsConfigurationSource );
115
114
}
116
- HandlerMappingIntrospector mappingIntrospector = context . getBean ( HANDLER_MAPPING_INTROSPECTOR_BEAN_NAME ,
117
- HandlerMappingIntrospector . class );
118
- return new CorsFilter ( mappingIntrospector );
115
+ throw new NoSuchBeanDefinitionException ( CorsConfigurationSource . class ,
116
+ "Failed to find a bean that implements `CorsConfigurationSource`. Please ensure that you are using "
117
+ + "`@EnableWebMvc`, are publishing a `WebMvcConfigurer`, or are publishing a `CorsConfigurationSource` bean." );
119
118
}
120
119
121
120
}
Original file line number Diff line number Diff line change @@ -70,7 +70,8 @@ public void configureWhenNoMvcThenException() {
70
70
assertThatExceptionOfType (BeanCreationException .class )
71
71
.isThrownBy (() -> this .spring .register (DefaultCorsConfig .class ).autowire ())
72
72
.withMessageContaining (
73
- "Please ensure Spring Security & Spring MVC are configured in a shared ApplicationContext" );
73
+ "Please ensure that you are using `@EnableWebMvc`, are publishing a `WebMvcConfigurer`, "
74
+ + "or are publishing a `CorsConfigurationSource` bean." );
74
75
}
75
76
76
77
@ Test
Original file line number Diff line number Diff line change @@ -56,7 +56,8 @@ class CorsDslTests {
56
56
fun `CORS when no MVC then exception` () {
57
57
assertThatThrownBy { this .spring.register(DefaultCorsConfig ::class .java).autowire() }
58
58
.isInstanceOf(BeanCreationException ::class .java)
59
- .hasMessageContaining(" Please ensure Spring Security & Spring MVC are configured in a shared ApplicationContext" )
59
+ .hasMessageContaining(" Please ensure that you are using `@EnableWebMvc`, are publishing a `WebMvcConfigurer`, " +
60
+ " or are publishing a `CorsConfigurationSource` bean." )
60
61
61
62
}
62
63
You can’t perform that action at this time.
0 commit comments