Skip to content

Commit 0841f6f

Browse files
authored
Merge pull request #82 from prgrms-web-devcourse-final-project/chore/EA3-gcp-deploy
[EA3] refactor : swagger cors 해결을 위한 코드 수정
2 parents 6519d75 + de2e438 commit 0841f6f

File tree

4 files changed

+19
-29
lines changed

4 files changed

+19
-29
lines changed

build.gradle

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ dependencies {
2828
// 데이터 베이스 의존성
2929
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
3030
runtimeOnly 'com.mysql:mysql-connector-j:8.4.0'
31-
//implementation 'com.h2database:h2:2.3.232'
32-
//implementation 'org.springframework.boot:spring-boot-devtools'
3331

3432
// Sql 쿼리 파라미터 보는 라이브러리
3533
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
@@ -77,27 +75,31 @@ dependencies {
7775
// OAuth2 의존성
7876
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
7977

80-
// GCP 관련 의존성
78+
// swagger
79+
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
80+
81+
// 배포 관련 의존성
82+
// implementation 'com.h2database:h2:2.3.232'
83+
// implementation 'org.springframework.boot:spring-boot-devtools'
84+
8185
// implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager:4.9.1'
8286
// implementation 'com.google.cloud:google-cloud-storage:2.38.0'
87+
}
8388

84-
// swagger
85-
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
89+
tasks.named('test') {
90+
useJUnitPlatform()
8691
}
8792

8893
dependencyManagement {
8994
imports {
9095
// Spring Cloud 전반 (Feign, Gateway 등) 의존성 버전 관리
91-
// mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
96+
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
97+
9298
// GCP 관련 스타터(BOM) 관리 - Secret Manager, GCS 등
9399
// mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}"
94100
}
95101
}
96102

97-
tasks.named('test') {
98-
useJUnitPlatform()
99-
}
100-
101103
// 환경별 application.properties 포함/제외 설정
102104
def activeProfile = project.hasProperty("profile") ? project.getProperty("profile") : "local"
103105

src/main/java/grep/neogul_coder/global/config/SwaggerConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import io.swagger.v3.oas.models.OpenAPI;
55
import io.swagger.v3.oas.models.security.SecurityRequirement;
66
import io.swagger.v3.oas.models.security.SecurityScheme;
7+
import io.swagger.v3.oas.models.servers.Server;
8+
import java.util.List;
79
import org.springframework.context.annotation.Bean;
810
import org.springframework.context.annotation.Configuration;
911

@@ -13,6 +15,7 @@ public class SwaggerConfig {
1315
@Bean
1416
public OpenAPI openAPI() {
1517
return new OpenAPI()
18+
.servers(List.of(new Server().url("/")))
1619
.components(new Components()
1720
.addSecuritySchemes("BearerAuth",
1821
new SecurityScheme()

src/main/java/grep/neogul_coder/global/config/WebConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void addResourceHandlers(ResourceHandlerRegistry registry) {
2525
@Override
2626
public void addCorsMappings(CorsRegistry registry) {
2727
registry.addMapping("/**")
28-
.allowedOrigins(frontServer)
28+
.allowedOriginPatterns(frontServer, "http://localhost:3000", "https://wibby.cedartodo.uk")
2929
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
3030
.allowedHeaders("*")
3131
.allowCredentials(true)

src/main/java/grep/neogul_coder/global/config/security/SecurityConfig.java

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import lombok.RequiredArgsConstructor;
1313
import org.springframework.context.annotation.Bean;
1414
import org.springframework.context.annotation.Configuration;
15+
import org.springframework.security.config.Customizer;
1516
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
1617
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1718
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -25,9 +26,6 @@
2526
import org.springframework.security.web.SecurityFilterChain;
2627
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
2728
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
28-
import org.springframework.web.cors.CorsConfiguration;
29-
import org.springframework.web.cors.CorsConfigurationSource;
30-
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
3129

3230
@Configuration
3331
@EnableWebSecurity
@@ -70,7 +68,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
7068
.csrf(AbstractHttpConfigurer::disable)
7169
.formLogin(AbstractHttpConfigurer::disable)
7270
.httpBasic(AbstractHttpConfigurer::disable)
73-
.cors(cors -> cors.configurationSource(corsConfigurationSource()))
71+
.cors(Customizer.withDefaults())
7472
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
7573
.logout(AbstractHttpConfigurer::disable)
7674
.authorizeHttpRequests(
@@ -99,24 +97,11 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
9997
return http.build();
10098
}
10199

102-
@Bean
103-
public CorsConfigurationSource corsConfigurationSource() {
104-
CorsConfiguration configuration = new CorsConfiguration();
105-
configuration.addAllowedOriginPattern("*");
106-
configuration.addAllowedMethod("*");
107-
configuration.addAllowedHeader("*");
108-
configuration.setAllowCredentials(true);
109-
110-
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
111-
source.registerCorsConfiguration("/**", configuration);
112-
return source;
113-
}
114-
//
115100
// @Bean
116101
// public AuthorizationRequestRepository<OAuth2AuthorizationRequest> authorizationRequestRepository() {
117102
// return new HttpCookieOAuth2AuthorizationRequestRepository();
118103
// }
119-
//
104+
120105
@Bean
121106
public PasswordEncoder passwordEncoder(){
122107
return PasswordEncoderFactories.createDelegatingPasswordEncoder();

0 commit comments

Comments
 (0)