|
14 | 14 | import org.springframework.security.web.authentication.HttpStatusEntryPoint; |
15 | 15 | import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; |
16 | 16 | import org.springframework.security.web.util.matcher.AntPathRequestMatcher; |
| 17 | +import org.springframework.web.cors.CorsConfiguration; |
| 18 | +import org.springframework.web.cors.CorsConfigurationSource; |
| 19 | +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; |
| 20 | + |
| 21 | +import java.util.Collections; |
17 | 22 |
|
18 | 23 | @Configuration |
19 | 24 | @EnableWebSecurity |
@@ -41,6 +46,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti |
41 | 46 |
|
42 | 47 | http |
43 | 48 | .csrf(AbstractHttpConfigurer::disable) |
| 49 | + .cors((cors) -> cors.configurationSource(corsConfigurationSource())) |
44 | 50 | .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) |
45 | 51 | .formLogin(AbstractHttpConfigurer::disable) |
46 | 52 | .httpBasic(AbstractHttpConfigurer::disable) |
@@ -75,6 +81,20 @@ private void configureAuthorization(AuthorizeHttpRequestsConfigurer<HttpSecurity |
75 | 81 | .anyRequest().permitAll(); |
76 | 82 | } |
77 | 83 |
|
| 84 | + public CorsConfigurationSource corsConfigurationSource() { |
| 85 | + CorsConfiguration configuration = new CorsConfiguration(); |
| 86 | + configuration.addAllowedHeader("*"); // 모든 헤더 허용 |
| 87 | + configuration.addAllowedMethod("*"); // 모든 HTTP 메서드 허용 |
| 88 | + configuration.setAllowedOriginPatterns(Collections.singletonList("*")); // 모든 Origin 허용 |
| 89 | + configuration.setAllowCredentials(true); // 인증 정보 포함 가능 (쿠키 등) |
| 90 | + configuration.setExposedHeaders(Collections.singletonList("Authorization")); // 🔹 응답 헤더에서 Authorization 허용 |
| 91 | + |
| 92 | + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); |
| 93 | + source.registerCorsConfiguration("/**", configuration); |
| 94 | + return source; |
| 95 | + } |
| 96 | + |
| 97 | + |
78 | 98 | // OAuth2 login configuration |
79 | 99 | // private void configureOAuth2Login(OAuth2LoginConfigurer<HttpSecurity> oauth2) { |
80 | 100 | // oauth2 |
|
0 commit comments