Spring Boot не может создать экземпляр bean-компонента corsConfigurationSource - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Spring Boot 2.1.2.Я также использую Spring Security.Как написано здесь:

https://docs.spring.io/spring-security/site/docs/current/reference/html5/#cors

Я пытаюсь создать экземпляр Bean, corsConfigurationSource.Я не могу создать его экземпляр, потому что corsConfigurationSource должен возвращать CorsConfigurationSource, но источником является UrlBasedCorsConfigurationSource.

Я не могу привести UrlBasedCorsConfigurationSource к CorsConfigurationSource, и я не могу заставить corsConfigurationSource () вернуть его.Как мне изменить свой код, чтобы компонент возвращал объект CorsConfigurationSource?

Фрагмент кода по ссылке выше:

@Bean
CorsConfigurationSource corsConfigurationSource() {
    CorsConfiguration configuration = new CorsConfiguration();
    configuration.setAllowedOrigins(Arrays.asList("https://example.com"));
    configuration.setAllowedMethods(Arrays.asList("GET","POST"));
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", configuration);
    return source;
}

Это последняя строка из stacktrace, когда я пытался вернутьUrlBasedCorsConfigurationSource вместо CorsConfigurationSource:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'corsConfigurationSource' is expected to be of type 'org.springframework.web.cors.CorsConfigurationSource' but was actually of type 'org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource'
...