본문 바로가기
오류 및 해결

[Spring] Rest 요청이 403을 반환하는 문제

by 서피 2021. 8. 4.

RestController를 이용한 회원가입을 구현하는 중, form을 전송하니 403 오류가 반환됐는데, 검색해보니 stackoverflow에 해결 방법이 있었다.

스프링 시큐리티는 기본적으로 csrf가 활성화 되어있는데, 이를 비활성화 해주어야 한다.

WebSecurityConfigurerAdapter 를 상속한 Config 클래스를 생성하고, csrf을 disable로 설정해주면 해결된다.

import java.util.Arrays;

import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
	
	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.cors().and().csrf().disable();
	}
	
	@Bean
    CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("*"));
        configuration.setAllowedHeaders(Arrays.asList("*"));
        configuration.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글