Skip to content

Commit 6f5ec95

Browse files
authored
Merge pull request #310 from MT-TEAM-Org/fix/cors
fix: cors 추가 및 수정
2 parents bc752a7 + b716a2d commit 6f5ec95

File tree

2 files changed

+23
-29
lines changed

2 files changed

+23
-29
lines changed

src/main/java/org/myteam/server/global/config/WebConfig.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.springframework.context.annotation.Bean;
55
import org.springframework.context.annotation.Configuration;
66
import org.springframework.web.cors.CorsConfiguration;
7+
import org.springframework.web.cors.CorsConfigurationSource;
78
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
89
import org.springframework.web.filter.CorsFilter;
910

@@ -15,8 +16,8 @@
1516
@Configuration
1617
public class WebConfig {
1718

18-
@Value("${FRONT_URL:http://localhost:3000}")
19-
private String frontUrl;
19+
private final String[] ALLOWED_ORIGIN = {"http://localhost:3000", "https://main.dbbilwoxps3tu.amplifyapp.com",
20+
"https://playhive.co.kr", "https://www.playhive.co.kr"};
2021

2122
protected WebConfig() {
2223
}
@@ -26,8 +27,6 @@ public CorsFilter corsFilter() {
2627
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
2728
CorsConfiguration config = new CorsConfiguration();
2829

29-
final String[] ALLOWED_ORIGIN = {frontUrl, "http://localhost:3000"};
30-
3130
config.setAllowCredentials(true);
3231
config.setAllowedOrigins(Arrays.asList(ALLOWED_ORIGIN));
3332
config.addAllowedHeader("*");
@@ -41,4 +40,21 @@ public CorsFilter corsFilter() {
4140
// TODO: 타입 확인해보기
4241
return new CorsFilter(source);
4342
}
43+
44+
@Bean
45+
public CorsConfigurationSource configurationSource() {
46+
CorsConfiguration configuration = new CorsConfiguration();
47+
48+
configuration.addAllowedHeader("*");
49+
configuration.addAllowedMethod("*");
50+
configuration.setAllowedOrigins(Arrays.asList(ALLOWED_ORIGIN));
51+
configuration.setAllowCredentials(true);
52+
53+
configuration.addExposedHeader(HEADER_AUTHORIZATION);
54+
configuration.addExposedHeader(REFRESH_TOKEN_KEY);
55+
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
56+
57+
source.registerCorsConfiguration("/**", configuration);
58+
return source;
59+
}
4460
}

src/main/java/org/myteam/server/global/security/config/SecurityConfig.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.myteam.server.global.security.jwt.JwtProvider.*;
44

5+
import org.myteam.server.global.config.WebConfig;
56
import org.myteam.server.global.security.filter.AuthenticationEntryPointHandler;
67
import org.myteam.server.global.security.filter.CustomAccessDeniedHandler;
78
import org.myteam.server.global.security.filter.JwtAuthenticationFilter;
@@ -183,8 +184,6 @@ public class SecurityConfig {
183184
/** @brief Check Access Member */"/test/cert",
184185
};
185186

186-
@Value("${FRONT_URL:http://localhost:3000}")
187-
private String frontUrl;
188187
private final JwtProvider jwtProvider;
189188
private final CustomUserDetailsService customUserDetailsService;
190189
private final CustomOAuth2UserService customOAuth2UserService;
@@ -193,12 +192,7 @@ public class SecurityConfig {
193192
private final ApplicationEventPublisher eventPublisher;
194193
private final RedisService redisService;
195194
private final MemberJpaRepository memberJpaRepository;
196-
197-
@PostConstruct
198-
public void init() {
199-
log.debug("init security config");
200-
log.debug("frontUrl = {}", frontUrl);
201-
}
195+
private final WebConfig webConfig;
202196

203197
@Bean
204198
public BCryptPasswordEncoder passwordEncoder() {
@@ -245,7 +239,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
245239
// .addFilter(webConfig.corsFilter()); // CORS 필터 추가
246240

247241
// // cors 설정
248-
http.cors((corsCustomizer) -> corsCustomizer.configurationSource(configurationSource()));
242+
http.cors((corsCustomizer) -> corsCustomizer.configurationSource(webConfig.configurationSource()));
249243

250244
// 예외 처리 핸들러 설정
251245
http.exceptionHandling(exceptionHandling -> exceptionHandling
@@ -287,20 +281,4 @@ public AuthenticationManager authenticationManager() {
287281
return new ProviderManager(provider);
288282
}
289283

290-
public CorsConfigurationSource configurationSource() {
291-
CorsConfiguration configuration = new CorsConfiguration();
292-
configuration.addAllowedHeader("*");
293-
configuration.addAllowedMethod("*");
294-
configuration.addAllowedOriginPattern(frontUrl); // TODO_ 추후 변경 해야함 배포시
295-
configuration.addAllowedOriginPattern("http://localhost:3000"); // TODO_ 추후 변경 해야함 배포시
296-
configuration.addAllowedOriginPattern("https://main.dbbilwoxps3tu.amplifyapp.com");
297-
configuration.addAllowedOriginPattern("https://playhive.co.kr");
298-
configuration.setAllowCredentials(true);
299-
configuration.addExposedHeader(HEADER_AUTHORIZATION);
300-
configuration.addExposedHeader(REFRESH_TOKEN_KEY);
301-
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
302-
source.registerCorsConfiguration("/**", configuration);
303-
return source;
304-
}
305-
306284
}

0 commit comments

Comments
 (0)