From 2af4df4960f9a2ca0ddf7a09d8c4d9dca14b710b Mon Sep 17 00:00:00 2001 From: chan0831 <116000778+chan0831@users.noreply.github.com> Date: Thu, 20 Feb 2025 05:23:46 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[Feat]=EB=B9=84=EB=B2=88=EC=B0=BE=EA=B8=B0?= =?UTF-8?q?=EC=9D=B4=EB=A9=94=EC=9D=BC=EC=84=A4=EC=A0=95(#155)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 이찬우 --- src/main/resources/application-prod.yml | 12 ++++++++++++ src/main/resources/application.yml | 13 +++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index bccfc04..05b96bd 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,6 +1,18 @@ spring: application: name: codeplay + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true config: import: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b8d907a..238a65f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,10 +4,15 @@ spring: mail: host: smtp.gmail.com port: 587 - username: dummy-email@gmail.com # 이메일 계정 - password: dummy-password - protocol: smt - tls: true + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true config: From 59598b5df8a02a4df6807146a7e2de0a00ae5cf3 Mon Sep 17 00:00:00 2001 From: Minhyung Kim Date: Thu, 20 Feb 2025 14:03:36 +0900 Subject: [PATCH 2/5] [Feat] oauthpop (#165) --- .../codeplay/controller/OAuthController.java | 49 +++++++++++++++---- src/main/resources/application-prod.yml | 3 ++ src/main/resources/application.yml | 3 ++ 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/main/java/umc/codeplay/controller/OAuthController.java b/src/main/java/umc/codeplay/controller/OAuthController.java index 2d3acbb..6f048eb 100644 --- a/src/main/java/umc/codeplay/controller/OAuthController.java +++ b/src/main/java/umc/codeplay/controller/OAuthController.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.Map; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.util.LinkedMultiValueMap; @@ -17,7 +18,7 @@ import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import umc.codeplay.apiPayLoad.ApiResponse; +import org.jetbrains.annotations.NotNull; import umc.codeplay.apiPayLoad.code.status.ErrorStatus; import umc.codeplay.apiPayLoad.exception.handler.GeneralHandler; import umc.codeplay.config.properties.BaseOAuthProperties; @@ -25,7 +26,6 @@ import umc.codeplay.config.properties.KakaoOAuthProperties; import umc.codeplay.domain.Member; import umc.codeplay.domain.enums.SocialStatus; -import umc.codeplay.dto.MemberResponseDTO; import umc.codeplay.jwt.JwtUtil; import umc.codeplay.service.MemberService; @@ -36,6 +36,9 @@ @Tag(name = "oauth-controller", description = "외부 소셜 로그인 서비스 연동 API, JWT 토큰 헤더 포함을 필요로 하지 않습니다.") public class OAuthController { + @Value("${frontend.url}") + private static String targetOrigin; + private final JwtUtil jwtUtil; private final RestTemplate restTemplate = new RestTemplate(); private final GoogleOAuthProperties googleOAuthProperties; @@ -65,7 +68,7 @@ public RedirectView redirectToOAuth(@PathVariable("provider") String provider) { @Hidden @GetMapping("/callback/{provider}") - public ApiResponse OAuthCallback( + public ResponseEntity OAuthCallback( @RequestParam("code") String code, @PathVariable("provider") String provider) { BaseOAuthProperties properties = switch (provider) { @@ -110,13 +113,41 @@ public ApiResponse OAuthCallback( String serviceAccessToken = jwtUtil.generateToken(email, authorities); String serviceRefreshToken = jwtUtil.generateRefreshToken(email, authorities); + String html = getString(serviceAccessToken, serviceRefreshToken, email); + + return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(html); + // (6) 최종적으로 JWT(액세스/리프레시)를 프론트에 응답 - return ApiResponse.onSuccess( - MemberResponseDTO.LoginResultDTO.builder() - .email(email) - .token(serviceAccessToken) - .refreshToken(serviceRefreshToken) - .build()); + // return ApiResponse.onSuccess( + // MemberResponseDTO.LoginResultDTO.builder() + // .email(email) + // .token(serviceAccessToken) + // .refreshToken(serviceRefreshToken) + // .build()); + } + + private static @NotNull String getString( + String serviceAccessToken, String serviceRefreshToken, String email) { + String jsonData = + String.format( + "{ \"accessToken\": \"%s\", \"refreshToken\": \"%s\", \"email\": \"%s\" }", + serviceAccessToken, serviceRefreshToken, email); + + return """ + + + + + + + """ + .formatted(jsonData, targetOrigin); } private Map requestOAuthToken(String code, BaseOAuthProperties properties) { diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 05b96bd..9633edf 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -48,6 +48,9 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} +frontend: + url: ${FRONTEND_URL} + s3: bucket: ${S3_BUCKET} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 238a65f..244380e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -49,6 +49,9 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} +frontend: + url: ${FRONTEND_URL} + s3: bucket: ${S3_BUCKET} From 9c6e30e082b72706d90b81acfec16c9ec75789df Mon Sep 17 00:00:00 2001 From: Minhyung Kim Date: Thu, 20 Feb 2025 14:38:01 +0900 Subject: [PATCH 3/5] fix oauthpop (#166) --- .../java/umc/codeplay/controller/OAuthController.java | 10 +++------- src/main/resources/application-prod.yml | 3 --- src/main/resources/application.yml | 3 --- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/src/main/java/umc/codeplay/controller/OAuthController.java b/src/main/java/umc/codeplay/controller/OAuthController.java index 6f048eb..5968cc1 100644 --- a/src/main/java/umc/codeplay/controller/OAuthController.java +++ b/src/main/java/umc/codeplay/controller/OAuthController.java @@ -3,7 +3,6 @@ import java.util.List; import java.util.Map; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.util.LinkedMultiValueMap; @@ -18,7 +17,6 @@ import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import org.jetbrains.annotations.NotNull; import umc.codeplay.apiPayLoad.code.status.ErrorStatus; import umc.codeplay.apiPayLoad.exception.handler.GeneralHandler; import umc.codeplay.config.properties.BaseOAuthProperties; @@ -36,9 +34,6 @@ @Tag(name = "oauth-controller", description = "외부 소셜 로그인 서비스 연동 API, JWT 토큰 헤더 포함을 필요로 하지 않습니다.") public class OAuthController { - @Value("${frontend.url}") - private static String targetOrigin; - private final JwtUtil jwtUtil; private final RestTemplate restTemplate = new RestTemplate(); private final GoogleOAuthProperties googleOAuthProperties; @@ -126,8 +121,9 @@ public ResponseEntity OAuthCallback( // .build()); } - private static @NotNull String getString( - String serviceAccessToken, String serviceRefreshToken, String email) { + String targetOrigin = "https://code-play-fe.vercel.app"; + + private String getString(String serviceAccessToken, String serviceRefreshToken, String email) { String jsonData = String.format( "{ \"accessToken\": \"%s\", \"refreshToken\": \"%s\", \"email\": \"%s\" }", diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 9633edf..05b96bd 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -48,9 +48,6 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} -frontend: - url: ${FRONTEND_URL} - s3: bucket: ${S3_BUCKET} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 244380e..238a65f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -49,9 +49,6 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} -frontend: - url: ${FRONTEND_URL} - s3: bucket: ${S3_BUCKET} From 937213c1da1e646142ec7a6aa5a614fd28adfa98 Mon Sep 17 00:00:00 2001 From: Kiara <80676180+2020147542@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:10:20 +0900 Subject: [PATCH 4/5] fix application-prod (#167) --- src/main/resources/application-prod.yml | 24 ++++++++++++------------ src/main/resources/application.yml | 11 +++++------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 05b96bd..ce6eb42 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,18 +1,18 @@ spring: application: name: codeplay - mail: - host: smtp.gmail.com - port: 587 - username: ${SPRING_MAIL_USERNAME} # 이메일 계정 - password: ${SPRING_MAIL_PASSWORD} - protocol: smtp - properties: - mail: - smtp: - auth: true - starttls: - enable: true + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true config: import: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 238a65f..57578e4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,12 +8,11 @@ spring: password: ${SPRING_MAIL_PASSWORD} protocol: smtp properties: - mail: - smtp: - auth: true - starttls: - enable: true - + mail: + smtp: + auth: true + starttls: + enable: true config: import: From b38a9ae185c4425def24affb9a5d3c717b167888 Mon Sep 17 00:00:00 2001 From: Kiara <80676180+2020147542@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:21:54 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=ED=99=98=EA=B2=BD=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD=20(#168)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-prod.yml | 25 +++++++++++++------------ src/main/resources/application.yml | 25 +++++++++++++------------ 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index ce6eb42..bd0ceff 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,18 +1,6 @@ spring: application: name: codeplay - mail: - host: smtp.gmail.com - port: 587 - username: ${SPRING_MAIL_USERNAME} # 이메일 계정 - password: ${SPRING_MAIL_PASSWORD} - protocol: smtp - properties: - mail: - smtp: - auth: true - starttls: - enable: true config: import: @@ -48,6 +36,19 @@ spring: access-key: ${AWS_ACCESS_KEY_ID} secret-key: ${AWS_SECRET_ACCESS_KEY} + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true + s3: bucket: ${S3_BUCKET} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 57578e4..90d1a7d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,18 +1,6 @@ spring: application: name: codeplay - mail: - host: smtp.gmail.com - port: 587 - username: ${SPRING_MAIL_USERNAME} # 이메일 계정 - password: ${SPRING_MAIL_PASSWORD} - protocol: smtp - properties: - mail: - smtp: - auth: true - starttls: - enable: true config: import: @@ -40,6 +28,19 @@ spring: use_sql_comments: true default_batch_fetch_size: 1000 # 배치 크기 설정 (성능 최적화) + mail: + host: smtp.gmail.com + port: 587 + username: ${SPRING_MAIL_USERNAME} # 이메일 계정 + password: ${SPRING_MAIL_PASSWORD} + protocol: smtp + properties: + mail: + smtp: + auth: true + starttls: + enable: true + cloud: aws: region: