Spring Security CORS 필터: "'Access-Control-Allow-Origin' 헤더가 없습니다" 문제 해결
설명
기존 프로젝트에 Spring Security를 추가하면 CORS(Cross-Origin Resource Sharing) 요청 중에 "No 'Access-Control-Allow-Origin' 헤더가 존재합니다." 오류가 발생할 수 있습니다. 이 오류는 요청에 Access-Control-Allow-Origin 응답 헤더가 추가되지 않았기 때문에 발생합니다.
해결책
방법 1:
Spring Security의 내장 CORS 지원을 사용하도록 코드를 업데이트하세요. 애플리케이션에 다음 구성을 추가하세요.
<code class="java">@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH"); } }</code>
방법 2:
CORS 구성을 더 효과적으로 제어하려면 다음 접근 방식을 사용하세요.
<code class="java">@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { 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; } }</code>
추가 참고 사항:
위 내용은 Spring Security를 추가한 후 \"No \'Access-Control-Allow-Origin\' Header is Present\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!