From ee528cff3215b07768b45caca63db93adf446684 Mon Sep 17 00:00:00 2001 From: jbh010204 Date: Mon, 11 Aug 2025 05:25:12 +0900 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20develop=20=EC=BF=A0=EA=B8=B0=20?= =?UTF-8?q?secure=20false=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../life/mosu/mosuserver/global/util/CookieBuilderUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java b/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java index 7f5ea9aa..67ee062f 100644 --- a/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java +++ b/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java @@ -65,7 +65,7 @@ public static String createLocalCookieString(String name, String value, Long max public static ResponseCookie createDevelopResponseCookie(String name, String value, Long maxAge) { return createBaseResponseCookieBuilder(name, value, maxAge) - .secure(true) + .secure(false) .domain(".mosuedu.com") .sameSite("Strict") .build(); From 195f97e4fb579f1085dd46b2629095174919bc6c Mon Sep 17 00:00:00 2001 From: KNU-K Date: Mon, 11 Aug 2025 05:55:42 +0900 Subject: [PATCH 2/3] feat: add deleteByExamApplicationId method to PaymentJpaRepository and integrate it in RefundTxEventListener --- .../application/refund/tx/RefundTxEventListener.java | 4 +++- .../domain/payment/repository/PaymentJpaRepository.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventListener.java b/src/main/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventListener.java index 54b2fb76..0779b23e 100644 --- a/src/main/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventListener.java +++ b/src/main/java/life/mosu/mosuserver/application/refund/tx/RefundTxEventListener.java @@ -1,6 +1,7 @@ package life.mosu.mosuserver.application.refund.tx; import life.mosu.mosuserver.application.refund.support.RefundQuotaSyncService; +import life.mosu.mosuserver.domain.payment.repository.PaymentJpaRepository; import life.mosu.mosuserver.global.tx.TxFailureHandler; import life.mosu.mosuserver.infra.notify.dto.luna.LunaNotificationEvent; import life.mosu.mosuserver.infra.notify.dto.luna.LunaNotificationStatus; @@ -19,6 +20,7 @@ public class RefundTxEventListener { private final TxFailureHandler refundFailureHandler; private final NotifyEventPublisher notifier; private final RefundQuotaSyncService quotaSyncService; + private final PaymentJpaRepository paymentJpaRepository; @TransactionalEventListener(phase = TransactionPhase.AFTER_ROLLBACK) public void afterRollbackHandler(RefundTxEvent event) { @@ -33,7 +35,7 @@ public void afterCommitHandler(RefundTxEvent event) { RefundContext ctx = event.getContext(); quotaSyncService.sync(ctx.examId()); log.info("[AFTER_COMMIT] 환불 성공 후 알림톡 발송 시작: orderId={}", ctx.transactionKey()); - + paymentJpaRepository.deleteByExamApplicationId(ctx.examApplicationId()); sendNotification(ctx.userId(), ctx.examApplicationId()); } diff --git a/src/main/java/life/mosu/mosuserver/domain/payment/repository/PaymentJpaRepository.java b/src/main/java/life/mosu/mosuserver/domain/payment/repository/PaymentJpaRepository.java index 85dfb22f..32d1becd 100644 --- a/src/main/java/life/mosu/mosuserver/domain/payment/repository/PaymentJpaRepository.java +++ b/src/main/java/life/mosu/mosuserver/domain/payment/repository/PaymentJpaRepository.java @@ -2,8 +2,8 @@ import java.time.LocalDateTime; import java.util.List; -import life.mosu.mosuserver.domain.payment.projection.PaymentWithLunchProjection; import life.mosu.mosuserver.domain.payment.entity.PaymentJpaEntity; +import life.mosu.mosuserver.domain.payment.projection.PaymentWithLunchProjection; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -11,6 +11,8 @@ public interface PaymentJpaRepository extends JpaRepository, PaymentJpaRepositoryCustom { + void deleteByExamApplicationId(Long examApplicationId); + // TODO:인덱스 처리 필요(풀스캔 위험) boolean existsByOrderId(String orderId); From b7d6fb918cbddfc8b201bbd855a750937cda9098 Mon Sep 17 00:00:00 2001 From: wlgns12370 Date: Mon, 11 Aug 2025 06:00:36 +0900 Subject: [PATCH 3/3] MOSU refactor: set secure flag to true for development cookies --- .../life/mosu/mosuserver/global/util/CookieBuilderUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java b/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java index 67ee062f..7f5ea9aa 100644 --- a/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java +++ b/src/main/java/life/mosu/mosuserver/global/util/CookieBuilderUtil.java @@ -65,7 +65,7 @@ public static String createLocalCookieString(String name, String value, Long max public static ResponseCookie createDevelopResponseCookie(String name, String value, Long maxAge) { return createBaseResponseCookieBuilder(name, value, maxAge) - .secure(false) + .secure(true) .domain(".mosuedu.com") .sameSite("Strict") .build();