복붙노트

[SPRING] Spring 부팅시 CORS를 Spring 보안 레벨에서 사용하는 방법 [닫기]

SPRING

Spring 부팅시 CORS를 Spring 보안 레벨에서 사용하는 방법 [닫기]

내 오류를 찾으려면이 부분을 참조하십시오.

스프링 블로그는 스프링 보안으로 작업 할 때 스프링 보안 수준에서 cors를 활성화해야한다고 말합니다.

그리고 내 프로젝트는 아래와 같습니다.

아무도 그 구성을 어디에 두어야하는지, 스프링 보안 수준을 찾는 방법을 설명 할 수 있습니까?

해결법

  1. ==============================

    1.이것은 Spring Security 4.1이 CORS와 Spring BOOT 1.5를 지원하도록 만드는 방법입니다.

    이것은 Spring Security 4.1이 CORS와 Spring BOOT 1.5를 지원하도록 만드는 방법입니다.

      @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
               .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH");
        }
    }
    

    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
    //        http.csrf().disable();
            http.cors();
        }
        @Bean
        public CorsConfigurationSource corsConfigurationSource() {
            final CorsConfiguration configuration = new CorsConfiguration();
            configuration.setAllowedOrigins(ImmutableList.of("*"));
            configuration.setAllowedMethods(ImmutableList.of("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH"));
            configuration.setAllowCredentials(true);
            configuration.setAllowedHeaders(ImmutableList.of("Authorization", "Cache-Control", "Content-Type"));
            final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            source.registerCorsConfiguration("/**", configuration);
            return source;
        }
    }
    
  2. ==============================

    2.CORS 전역 구성을 사용하려면 CorsConfigurationSource Bean을 다음과 같이 선언 할 수 있습니다.

    CORS 전역 구성을 사용하려면 CorsConfigurationSource Bean을 다음과 같이 선언 할 수 있습니다.

    @EnableWebSecurity
    public class WebSecurityConfig extends 
    WebSecurityConfigurerAdapter {
    
    @Override
    protected void configure(HttpSecurity http) throws 
    Exception {
        http.cors().and()...
    }
    
    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new 
    UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
       }
       }
    

    스프링 부트 프로젝트 예제에 대한 자세한 내용은 1) https://hellokoding.com/registration-and-login-example-with-spring-security-spring-boot-spring-data-jpa-hsql-jsp/ 또는 2) http://www.mkyong.com/spring-boot/spring-boot-spring-security-thymeleaf-example/

  3. from https://stackoverflow.com/questions/48926480/how-to-enable-cors-at-spring-security-level-in-spring-boot by cc-by-sa and MIT license