From 590eee5faef515716a1e565c59e7ee4d26ed9b82 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:25:15 +0900 Subject: [PATCH 1/9] =?UTF-8?q?rename:=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../announcement/controller/AnnouncementController.java | 6 +++--- .../domain/repository/AnnouncementQueryRepository.java | 2 +- .../announcement/service/AnnouncementQueryService.java | 2 +- .../festival/booth/service/BoothQueryService.java | 2 +- .../mju_likelion/festival/booth/service/BoothService.java | 2 +- .../common/{ => util}/annotaion/page_number/PageNumber.java | 2 +- .../annotaion/page_number/PageNumberValidator.java | 2 +- .../common/{ => util}/annotaion/page_size/PageSize.java | 2 +- .../{ => util}/annotaion/page_size/PageSizeValidator.java | 2 +- .../common/{ => util}/circuit_breaker/FallBackUtil.java | 2 +- .../festival/common/{ => util}/enums/SortOrder.java | 2 +- .../festival/lost_item/controller/LostItemController.java | 6 +++--- .../domain/repository/LostItemQueryRepository.java | 2 +- .../festival/lost_item/service/LostItemQueryService.java | 4 ++-- .../festival/lost_item/service/LostItemService.java | 2 +- .../festival/term/service/TermQueryService.java | 2 +- src/main/resources/logback-spring.xml | 2 +- .../domain/repository/AnnouncementQueryRepositoryTest.java | 2 +- .../domain/repository/LostItemQueryRepositoryTest.java | 2 +- 19 files changed, 24 insertions(+), 24 deletions(-) rename src/main/java/org/mju_likelion/festival/common/{ => util}/annotaion/page_number/PageNumber.java (89%) rename src/main/java/org/mju_likelion/festival/common/{ => util}/annotaion/page_number/PageNumberValidator.java (86%) rename src/main/java/org/mju_likelion/festival/common/{ => util}/annotaion/page_size/PageSize.java (89%) rename src/main/java/org/mju_likelion/festival/common/{ => util}/annotaion/page_size/PageSizeValidator.java (86%) rename src/main/java/org/mju_likelion/festival/common/{ => util}/circuit_breaker/FallBackUtil.java (91%) rename src/main/java/org/mju_likelion/festival/common/{ => util}/enums/SortOrder.java (90%) diff --git a/src/main/java/org/mju_likelion/festival/announcement/controller/AnnouncementController.java b/src/main/java/org/mju_likelion/festival/announcement/controller/AnnouncementController.java index 43ea55b..d91ed71 100644 --- a/src/main/java/org/mju_likelion/festival/announcement/controller/AnnouncementController.java +++ b/src/main/java/org/mju_likelion/festival/announcement/controller/AnnouncementController.java @@ -15,10 +15,10 @@ import org.mju_likelion.festival.announcement.dto.response.SimpleAnnouncementsResponse; import org.mju_likelion.festival.announcement.service.AnnouncementQueryService; import org.mju_likelion.festival.announcement.service.AnnouncementService; -import org.mju_likelion.festival.common.annotaion.page_number.PageNumber; -import org.mju_likelion.festival.common.annotaion.page_size.PageSize; import org.mju_likelion.festival.common.authentication.AuthenticationPrincipal; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.annotaion.page_number.PageNumber; +import org.mju_likelion.festival.common.util.annotaion.page_size.PageSize; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; diff --git a/src/main/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepository.java b/src/main/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepository.java index 6fe8471..1ad8536 100644 --- a/src/main/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepository.java +++ b/src/main/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepository.java @@ -9,7 +9,7 @@ import lombok.RequiredArgsConstructor; import org.mju_likelion.festival.announcement.domain.AnnouncementDetail; import org.mju_likelion.festival.announcement.domain.SimpleAnnouncement; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.springframework.dao.support.DataAccessUtils; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; diff --git a/src/main/java/org/mju_likelion/festival/announcement/service/AnnouncementQueryService.java b/src/main/java/org/mju_likelion/festival/announcement/service/AnnouncementQueryService.java index b55b3b8..6840905 100644 --- a/src/main/java/org/mju_likelion/festival/announcement/service/AnnouncementQueryService.java +++ b/src/main/java/org/mju_likelion/festival/announcement/service/AnnouncementQueryService.java @@ -12,8 +12,8 @@ import org.mju_likelion.festival.announcement.domain.repository.AnnouncementQueryRepository; import org.mju_likelion.festival.announcement.dto.response.AnnouncementDetailResponse; import org.mju_likelion.festival.announcement.dto.response.SimpleAnnouncementsResponse; -import org.mju_likelion.festival.common.enums.SortOrder; import org.mju_likelion.festival.common.exception.NotFoundException; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/org/mju_likelion/festival/booth/service/BoothQueryService.java b/src/main/java/org/mju_likelion/festival/booth/service/BoothQueryService.java index 5393028..eca566c 100644 --- a/src/main/java/org/mju_likelion/festival/booth/service/BoothQueryService.java +++ b/src/main/java/org/mju_likelion/festival/booth/service/BoothQueryService.java @@ -27,10 +27,10 @@ import org.mju_likelion.festival.booth.dto.response.SimpleBoothResponse; import org.mju_likelion.festival.booth.dto.response.SimpleBoothResponses; import org.mju_likelion.festival.booth.util.qr.manager.BoothQrManager; -import org.mju_likelion.festival.common.circuit_breaker.FallBackUtil; import org.mju_likelion.festival.common.exception.BadRequestException; import org.mju_likelion.festival.common.exception.ForbiddenException; import org.mju_likelion.festival.common.exception.NotFoundException; +import org.mju_likelion.festival.common.util.circuit_breaker.FallBackUtil; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/org/mju_likelion/festival/booth/service/BoothService.java b/src/main/java/org/mju_likelion/festival/booth/service/BoothService.java index eee0c5f..c40bb1f 100644 --- a/src/main/java/org/mju_likelion/festival/booth/service/BoothService.java +++ b/src/main/java/org/mju_likelion/festival/booth/service/BoothService.java @@ -12,7 +12,7 @@ import org.mju_likelion.festival.booth.dto.request.UpdateBoothRequest; import org.mju_likelion.festival.booth.util.qr.BoothQrStrategy; import org.mju_likelion.festival.booth.util.qr.manager.BoothQrManager; -import org.mju_likelion.festival.common.circuit_breaker.FallBackUtil; +import org.mju_likelion.festival.common.util.circuit_breaker.FallBackUtil; import org.mju_likelion.festival.user.domain.User; import org.mju_likelion.festival.user.service.UserQueryService; import org.springframework.cache.annotation.CacheEvict; diff --git a/src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumber.java b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumber.java similarity index 89% rename from src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumber.java rename to src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumber.java index 2627e62..89d7d5b 100644 --- a/src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumber.java +++ b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumber.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.annotaion.page_number; +package org.mju_likelion.festival.common.util.annotaion.page_number; import jakarta.validation.Constraint; import jakarta.validation.Payload; diff --git a/src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumberValidator.java b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumberValidator.java similarity index 86% rename from src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumberValidator.java rename to src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumberValidator.java index 46b0f19..386a3b4 100644 --- a/src/main/java/org/mju_likelion/festival/common/annotaion/page_number/PageNumberValidator.java +++ b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_number/PageNumberValidator.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.annotaion.page_number; +package org.mju_likelion.festival.common.util.annotaion.page_number; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; diff --git a/src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSize.java b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSize.java similarity index 89% rename from src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSize.java rename to src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSize.java index 16df650..13dd979 100644 --- a/src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSize.java +++ b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSize.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.annotaion.page_size; +package org.mju_likelion.festival.common.util.annotaion.page_size; import jakarta.validation.Constraint; import jakarta.validation.Payload; diff --git a/src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSizeValidator.java b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSizeValidator.java similarity index 86% rename from src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSizeValidator.java rename to src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSizeValidator.java index b22d074..8665bf3 100644 --- a/src/main/java/org/mju_likelion/festival/common/annotaion/page_size/PageSizeValidator.java +++ b/src/main/java/org/mju_likelion/festival/common/util/annotaion/page_size/PageSizeValidator.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.annotaion.page_size; +package org.mju_likelion.festival.common.util.annotaion.page_size; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; diff --git a/src/main/java/org/mju_likelion/festival/common/circuit_breaker/FallBackUtil.java b/src/main/java/org/mju_likelion/festival/common/util/circuit_breaker/FallBackUtil.java similarity index 91% rename from src/main/java/org/mju_likelion/festival/common/circuit_breaker/FallBackUtil.java rename to src/main/java/org/mju_likelion/festival/common/util/circuit_breaker/FallBackUtil.java index 9a959c3..c5e602f 100644 --- a/src/main/java/org/mju_likelion/festival/common/circuit_breaker/FallBackUtil.java +++ b/src/main/java/org/mju_likelion/festival/common/util/circuit_breaker/FallBackUtil.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.circuit_breaker; +package org.mju_likelion.festival.common.util.circuit_breaker; import lombok.extern.slf4j.Slf4j; import org.mju_likelion.festival.common.exception.CustomException; diff --git a/src/main/java/org/mju_likelion/festival/common/enums/SortOrder.java b/src/main/java/org/mju_likelion/festival/common/util/enums/SortOrder.java similarity index 90% rename from src/main/java/org/mju_likelion/festival/common/enums/SortOrder.java rename to src/main/java/org/mju_likelion/festival/common/util/enums/SortOrder.java index 793a03c..1e68976 100644 --- a/src/main/java/org/mju_likelion/festival/common/enums/SortOrder.java +++ b/src/main/java/org/mju_likelion/festival/common/util/enums/SortOrder.java @@ -1,4 +1,4 @@ -package org.mju_likelion.festival.common.enums; +package org.mju_likelion.festival.common.util.enums; import static org.mju_likelion.festival.common.exception.type.ErrorType.INVALID_SORT_ORDER_ERROR; diff --git a/src/main/java/org/mju_likelion/festival/lost_item/controller/LostItemController.java b/src/main/java/org/mju_likelion/festival/lost_item/controller/LostItemController.java index 9f82ec8..f830d08 100644 --- a/src/main/java/org/mju_likelion/festival/lost_item/controller/LostItemController.java +++ b/src/main/java/org/mju_likelion/festival/lost_item/controller/LostItemController.java @@ -11,10 +11,10 @@ import jakarta.validation.Valid; import java.util.UUID; import lombok.AllArgsConstructor; -import org.mju_likelion.festival.common.annotaion.page_number.PageNumber; -import org.mju_likelion.festival.common.annotaion.page_size.PageSize; import org.mju_likelion.festival.common.authentication.AuthenticationPrincipal; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.annotaion.page_number.PageNumber; +import org.mju_likelion.festival.common.util.annotaion.page_size.PageSize; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.mju_likelion.festival.lost_item.dto.request.CreateLostItemRequest; import org.mju_likelion.festival.lost_item.dto.request.LostItemFoundRequest; import org.mju_likelion.festival.lost_item.dto.request.UpdateLostItemRequest; diff --git a/src/main/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepository.java b/src/main/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepository.java index 85c2800..f424da7 100644 --- a/src/main/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepository.java +++ b/src/main/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepository.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.mju_likelion.festival.lost_item.domain.LostItemDetail; import org.mju_likelion.festival.lost_item.domain.SimpleLostItem; import org.springframework.jdbc.core.RowMapper; diff --git a/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemQueryService.java b/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemQueryService.java index 178663c..c13b1ee 100644 --- a/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemQueryService.java +++ b/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemQueryService.java @@ -8,9 +8,9 @@ import java.util.List; import java.util.UUID; import lombok.RequiredArgsConstructor; -import org.mju_likelion.festival.common.circuit_breaker.FallBackUtil; -import org.mju_likelion.festival.common.enums.SortOrder; import org.mju_likelion.festival.common.exception.NotFoundException; +import org.mju_likelion.festival.common.util.circuit_breaker.FallBackUtil; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.mju_likelion.festival.lost_item.domain.LostItem; import org.mju_likelion.festival.lost_item.domain.LostItemDetail; import org.mju_likelion.festival.lost_item.domain.SimpleLostItem; diff --git a/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemService.java b/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemService.java index 276a3a6..cd2ed17 100644 --- a/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemService.java +++ b/src/main/java/org/mju_likelion/festival/lost_item/service/LostItemService.java @@ -8,7 +8,7 @@ import lombok.RequiredArgsConstructor; import org.mju_likelion.festival.admin.domain.Admin; import org.mju_likelion.festival.admin.service.AdminQueryService; -import org.mju_likelion.festival.common.circuit_breaker.FallBackUtil; +import org.mju_likelion.festival.common.util.circuit_breaker.FallBackUtil; import org.mju_likelion.festival.image.domain.Image; import org.mju_likelion.festival.lost_item.domain.LostItem; import org.mju_likelion.festival.lost_item.domain.repository.LostItemJpaRepository; diff --git a/src/main/java/org/mju_likelion/festival/term/service/TermQueryService.java b/src/main/java/org/mju_likelion/festival/term/service/TermQueryService.java index f33a62c..6fb87c9 100644 --- a/src/main/java/org/mju_likelion/festival/term/service/TermQueryService.java +++ b/src/main/java/org/mju_likelion/festival/term/service/TermQueryService.java @@ -9,9 +9,9 @@ import java.util.UUID; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; -import org.mju_likelion.festival.common.circuit_breaker.FallBackUtil; import org.mju_likelion.festival.common.exception.BadRequestException; import org.mju_likelion.festival.common.exception.type.ErrorType; +import org.mju_likelion.festival.common.util.circuit_breaker.FallBackUtil; import org.mju_likelion.festival.term.domain.Term; import org.mju_likelion.festival.term.domain.repository.TermJpaRepository; import org.mju_likelion.festival.term.domain.repository.TermQueryRepository; diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 441438c..b777364 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -55,7 +55,7 @@ - + diff --git a/src/test/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepositoryTest.java b/src/test/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepositoryTest.java index 74b0471..786d883 100644 --- a/src/test/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepositoryTest.java +++ b/src/test/java/org/mju_likelion/festival/announcement/domain/repository/AnnouncementQueryRepositoryTest.java @@ -15,7 +15,7 @@ import org.mju_likelion.festival.announcement.domain.AnnouncementDetail; import org.mju_likelion.festival.announcement.domain.SimpleAnnouncement; import org.mju_likelion.festival.common.annotation.ApplicationTest; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.transaction.annotation.Transactional; diff --git a/src/test/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepositoryTest.java b/src/test/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepositoryTest.java index f5c12a1..9dee01e 100644 --- a/src/test/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepositoryTest.java +++ b/src/test/java/org/mju_likelion/festival/lost_item/domain/repository/LostItemQueryRepositoryTest.java @@ -16,7 +16,7 @@ import org.mju_likelion.festival.admin.domain.AdminRole; import org.mju_likelion.festival.admin.domain.repository.AdminJpaRepository; import org.mju_likelion.festival.common.annotation.ApplicationTest; -import org.mju_likelion.festival.common.enums.SortOrder; +import org.mju_likelion.festival.common.util.enums.SortOrder; import org.mju_likelion.festival.image.domain.Image; import org.mju_likelion.festival.lost_item.domain.LostItem; import org.mju_likelion.festival.lost_item.domain.SimpleLostItem; From c2b6e834f662c64f97790ae3d921f4c8fa4894ad Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:26:18 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20RestInterceptor=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - url 과 http method 를 통해 동작 여부를 판단 --- .../common/interceptor/RestInterceptor.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/org/mju_likelion/festival/common/interceptor/RestInterceptor.java diff --git a/src/main/java/org/mju_likelion/festival/common/interceptor/RestInterceptor.java b/src/main/java/org/mju_likelion/festival/common/interceptor/RestInterceptor.java new file mode 100644 index 0000000..54b92e3 --- /dev/null +++ b/src/main/java/org/mju_likelion/festival/common/interceptor/RestInterceptor.java @@ -0,0 +1,30 @@ +package org.mju_likelion.festival.common.interceptor; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.cors.CorsUtils; +import org.springframework.web.servlet.HandlerInterceptor; + +public abstract class RestInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle( + final HttpServletRequest request, + final HttpServletResponse response, + final Object handler) { + + if (isPassableRequest(request)) { + return true; + } + + return doInternal(request); + } + + protected abstract boolean doInternal(HttpServletRequest request); + + private boolean isPassableRequest(final HttpServletRequest request) { + return CorsUtils.isPreFlightRequest(request) || isPermittedApi(request); + } + + abstract protected boolean isPermittedApi(final HttpServletRequest request); +} From 2d61d483992d6211ecaea1a7c03a8277cd7bc8e0 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:27:02 +0900 Subject: [PATCH 3/9] =?UTF-8?q?feat:=20RequestMatcherProvider=20=EC=9D=B8?= =?UTF-8?q?=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EA=B5=AC=ED=98=84=20-?= =?UTF-8?q?=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 각각 허용, 비허용하는 RequestMather List 를 반환 --- .../request_matcher/AllowedRequestMatcherProvider.java | 8 ++++++++ .../util/request_matcher/RequestRestrictionProvider.java | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/main/java/org/mju_likelion/festival/common/util/request_matcher/AllowedRequestMatcherProvider.java create mode 100644 src/main/java/org/mju_likelion/festival/common/util/request_matcher/RequestRestrictionProvider.java diff --git a/src/main/java/org/mju_likelion/festival/common/util/request_matcher/AllowedRequestMatcherProvider.java b/src/main/java/org/mju_likelion/festival/common/util/request_matcher/AllowedRequestMatcherProvider.java new file mode 100644 index 0000000..9f2962a --- /dev/null +++ b/src/main/java/org/mju_likelion/festival/common/util/request_matcher/AllowedRequestMatcherProvider.java @@ -0,0 +1,8 @@ +package org.mju_likelion.festival.common.util.request_matcher; + +import java.util.List; + +public interface AllowedRequestMatcherProvider { + + List getAllowedRequestMatchers(); +} diff --git a/src/main/java/org/mju_likelion/festival/common/util/request_matcher/RequestRestrictionProvider.java b/src/main/java/org/mju_likelion/festival/common/util/request_matcher/RequestRestrictionProvider.java new file mode 100644 index 0000000..aeaca82 --- /dev/null +++ b/src/main/java/org/mju_likelion/festival/common/util/request_matcher/RequestRestrictionProvider.java @@ -0,0 +1,8 @@ +package org.mju_likelion.festival.common.util.request_matcher; + +import java.util.List; + +public interface RequestRestrictionProvider { + + List getNotAllowedRequestMatchers(); +} From b78160ad035579621b4b04ee67f9938de8712fe6 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:27:24 +0900 Subject: [PATCH 4/9] =?UTF-8?q?remove:=20Filter=20=EB=A5=BC=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B2=8C=20=EB=90=A8?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../festival/common/config/FilterConfig.java | 45 --------------- .../common/filter/ErrorResponseHandler.java | 31 ---------- .../festival/common/filter/RestFilter.java | 56 ------------------- .../DateRestrictionFilter.java | 48 ---------------- .../BoothOperationTimeFilter.java | 46 --------------- 5 files changed, 226 deletions(-) delete mode 100644 src/main/java/org/mju_likelion/festival/common/config/FilterConfig.java delete mode 100644 src/main/java/org/mju_likelion/festival/common/filter/ErrorResponseHandler.java delete mode 100644 src/main/java/org/mju_likelion/festival/common/filter/RestFilter.java delete mode 100644 src/main/java/org/mju_likelion/festival/common/filter/date_restriction/DateRestrictionFilter.java delete mode 100644 src/main/java/org/mju_likelion/festival/common/filter/time_restriction/BoothOperationTimeFilter.java diff --git a/src/main/java/org/mju_likelion/festival/common/config/FilterConfig.java b/src/main/java/org/mju_likelion/festival/common/config/FilterConfig.java deleted file mode 100644 index c20b26f..0000000 --- a/src/main/java/org/mju_likelion/festival/common/config/FilterConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.mju_likelion.festival.common.config; - -import org.mju_likelion.festival.common.filter.date_restriction.DateRestrictionFilter; -import org.mju_likelion.festival.common.filter.time_restriction.BoothOperationTimeFilter; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.web.servlet.FilterRegistrationBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class FilterConfig { - - @Value("${application.service.end.date}") - private String endDateString; - @Value("${application.service.start.date}") - private String startDateString; - @Value("${booth.open.time}") - private String boothOpenTimeString; - @Value("${booth.close.time}") - private String boothCloseTimeString; - - @Bean - public FilterRegistrationBean dateRestrictedFilterFilterRegistrationBean() { - FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - registrationBean.setFilter(new DateRestrictionFilter()); - registrationBean.addUrlPatterns("/*"); - registrationBean.addInitParameter("startDateString", startDateString); - registrationBean.addInitParameter("endDateString", endDateString); - registrationBean.setOrder(0); - - return registrationBean; - } - - @Bean - public FilterRegistrationBean boothOperationFilterFilterRegistrationBean() { - FilterRegistrationBean registrationBean = new FilterRegistrationBean<>(); - registrationBean.setFilter(new BoothOperationTimeFilter()); - registrationBean.addUrlPatterns("/*"); - registrationBean.addInitParameter("startTimeString", boothOpenTimeString); - registrationBean.addInitParameter("endTimeString", boothCloseTimeString); - registrationBean.setOrder(1); - - return registrationBean; - } -} diff --git a/src/main/java/org/mju_likelion/festival/common/filter/ErrorResponseHandler.java b/src/main/java/org/mju_likelion/festival/common/filter/ErrorResponseHandler.java deleted file mode 100644 index 63be521..0000000 --- a/src/main/java/org/mju_likelion/festival/common/filter/ErrorResponseHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.mju_likelion.festival.common.filter; - -import static org.apache.commons.codec.CharEncoding.UTF_8; -import static org.apache.http.entity.ContentType.APPLICATION_JSON; - -import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.servlet.ServletResponse; -import jakarta.servlet.http.HttpServletResponse; -import java.io.IOException; -import org.mju_likelion.festival.common.exception.CustomException; -import org.mju_likelion.festival.common.exception.dto.ErrorResponse; - -public class ErrorResponseHandler { - - private static final ObjectMapper objectMapper = new ObjectMapper(); - - public static void writeErrorResponse( - final ServletResponse response, - final CustomException customException) - throws IOException { - - ErrorResponse errorResponse = ErrorResponse.res(customException); - - HttpServletResponse httpServletResponse = (HttpServletResponse) response; - httpServletResponse.setStatus(customException.getHttpStatus().value()); - httpServletResponse.setContentType(APPLICATION_JSON.getMimeType()); - httpServletResponse.setCharacterEncoding(UTF_8); - httpServletResponse.getWriter().write(objectMapper.writeValueAsString(errorResponse)); - } -} - diff --git a/src/main/java/org/mju_likelion/festival/common/filter/RestFilter.java b/src/main/java/org/mju_likelion/festival/common/filter/RestFilter.java deleted file mode 100644 index 9a7e029..0000000 --- a/src/main/java/org/mju_likelion/festival/common/filter/RestFilter.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.mju_likelion.festival.common.filter; - -import jakarta.servlet.Filter; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.ServletRequest; -import jakarta.servlet.ServletResponse; -import jakarta.servlet.http.HttpServletRequest; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import org.mju_likelion.festival.common.exception.CustomException; -import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; -import org.springframework.web.cors.CorsUtils; - -public abstract class RestFilter implements Filter { - - @Override - public void doFilter( - final ServletRequest request, - final ServletResponse response, - final FilterChain chain) throws ServletException, IOException { - - try { - if (isPassableRequest(request)) { - chain.doFilter(request, response); - return; - } - process(request); - chain.doFilter(request, response); - } catch (CustomException customException) { - ErrorResponseHandler.writeErrorResponse(response, customException); - response.getWriter().flush(); - } - } - - protected abstract void process(final ServletRequest request); - - private boolean isPassableRequest(final ServletRequest request) { - HttpServletRequest httpRequest = (HttpServletRequest) request; - return isOptionsRequest(httpRequest) || !isRequestNotPermitted(httpRequest); - } - - private boolean isOptionsRequest(final HttpServletRequest request) { - return CorsUtils.isPreFlightRequest(request); - } - - private boolean isRequestNotPermitted(final HttpServletRequest request) { - return getNotAllowedRequestMatchers().stream() - .anyMatch(matcher -> matcher.matches(request)); - } - - protected List getNotAllowedRequestMatchers() { - return new ArrayList<>(); - } -} diff --git a/src/main/java/org/mju_likelion/festival/common/filter/date_restriction/DateRestrictionFilter.java b/src/main/java/org/mju_likelion/festival/common/filter/date_restriction/DateRestrictionFilter.java deleted file mode 100644 index 54ff6de..0000000 --- a/src/main/java/org/mju_likelion/festival/common/filter/date_restriction/DateRestrictionFilter.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.mju_likelion.festival.common.filter.date_restriction; - -import static org.mju_likelion.festival.common.api.ApiPaths.ISSUE_BOOTH_QR; -import static org.mju_likelion.festival.common.api.ApiPaths.USER_LOGIN; -import static org.mju_likelion.festival.common.api.ApiPaths.VISIT_BOOTH; -import static org.mju_likelion.festival.common.exception.type.ErrorType.DATE_RESTRICTED_ERROR; - -import jakarta.servlet.FilterConfig; -import jakarta.servlet.ServletRequest; -import java.time.LocalDate; -import java.util.List; -import org.mju_likelion.festival.common.exception.ServiceUnavailableException; -import org.mju_likelion.festival.common.filter.RestFilter; -import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; -import org.springframework.http.HttpMethod; - -public class DateRestrictionFilter extends RestFilter { - - private LocalDate startDate; - private LocalDate endDate; - - @Override - public void init(FilterConfig filterConfig) { - String startDateString = filterConfig.getInitParameter("startDateString"); - String endDateString = filterConfig.getInitParameter("endDateString"); - - startDate = LocalDate.parse(startDateString); - endDate = LocalDate.parse(endDateString); - } - - @Override - protected void process(final ServletRequest request) { - LocalDate currentDate = LocalDate.now(); - - if (currentDate.isBefore(startDate) || currentDate.isAfter(endDate)) { - throw new ServiceUnavailableException(DATE_RESTRICTED_ERROR); - } - } - - @Override - protected List getNotAllowedRequestMatchers() { - return List.of( - new RequestMatcher(HttpMethod.POST, USER_LOGIN), - new RequestMatcher(HttpMethod.GET, ISSUE_BOOTH_QR), - new RequestMatcher(HttpMethod.POST, VISIT_BOOTH) - ); - } -} diff --git a/src/main/java/org/mju_likelion/festival/common/filter/time_restriction/BoothOperationTimeFilter.java b/src/main/java/org/mju_likelion/festival/common/filter/time_restriction/BoothOperationTimeFilter.java deleted file mode 100644 index 9c56cfb..0000000 --- a/src/main/java/org/mju_likelion/festival/common/filter/time_restriction/BoothOperationTimeFilter.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.mju_likelion.festival.common.filter.time_restriction; - -import static org.mju_likelion.festival.common.api.ApiPaths.ISSUE_BOOTH_QR; -import static org.mju_likelion.festival.common.api.ApiPaths.VISIT_BOOTH; -import static org.mju_likelion.festival.common.exception.type.ErrorType.BOOTH_RESTRICTED_ERROR; - -import jakarta.servlet.FilterConfig; -import jakarta.servlet.ServletRequest; -import java.time.LocalTime; -import java.util.List; -import org.mju_likelion.festival.common.exception.ServiceUnavailableException; -import org.mju_likelion.festival.common.filter.RestFilter; -import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; -import org.springframework.http.HttpMethod; - -public class BoothOperationTimeFilter extends RestFilter { - - private LocalTime startTime; - private LocalTime endTime; - - @Override - public void init(FilterConfig filterConfig) { - String startTimeString = filterConfig.getInitParameter("startTimeString"); - String endTimeString = filterConfig.getInitParameter("endTimeString"); - - startTime = LocalTime.parse(startTimeString); - endTime = LocalTime.parse(endTimeString); - } - - @Override - protected void process(ServletRequest request) { - LocalTime currentTime = LocalTime.now(); - - if (currentTime.isBefore(startTime) || currentTime.isAfter(endTime)) { - throw new ServiceUnavailableException(BOOTH_RESTRICTED_ERROR); - } - } - - @Override - protected List getNotAllowedRequestMatchers() { - return List.of( - new RequestMatcher(HttpMethod.GET, ISSUE_BOOTH_QR), - new RequestMatcher(HttpMethod.POST, VISIT_BOOTH) - ); - } -} From 3bb823ccd5da33ec6410f37548e213bc81db5dd7 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:27:56 +0900 Subject: [PATCH 5/9] =?UTF-8?q?feat:=20DateRestrictionInterceptor=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DateRestrictionInterceptor.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/main/java/org/mju_likelion/festival/common/restriction/date_restriction/DateRestrictionInterceptor.java diff --git a/src/main/java/org/mju_likelion/festival/common/restriction/date_restriction/DateRestrictionInterceptor.java b/src/main/java/org/mju_likelion/festival/common/restriction/date_restriction/DateRestrictionInterceptor.java new file mode 100644 index 0000000..56b4a4b --- /dev/null +++ b/src/main/java/org/mju_likelion/festival/common/restriction/date_restriction/DateRestrictionInterceptor.java @@ -0,0 +1,57 @@ +package org.mju_likelion.festival.common.restriction.date_restriction; + +import static org.mju_likelion.festival.common.api.ApiPaths.ISSUE_BOOTH_QR; +import static org.mju_likelion.festival.common.api.ApiPaths.USER_LOGIN; +import static org.mju_likelion.festival.common.api.ApiPaths.VISIT_BOOTH; +import static org.mju_likelion.festival.common.exception.type.ErrorType.DATE_RESTRICTED_ERROR; + +import jakarta.servlet.http.HttpServletRequest; +import java.time.LocalDate; +import java.util.List; +import org.mju_likelion.festival.common.exception.ServiceUnavailableException; +import org.mju_likelion.festival.common.interceptor.RestInterceptor; +import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; +import org.mju_likelion.festival.common.util.request_matcher.RequestRestrictionProvider; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Component; + +@Component +public class DateRestrictionInterceptor extends RestInterceptor implements + RequestRestrictionProvider { + + private final LocalDate startDate; + private final LocalDate endDate; + + public DateRestrictionInterceptor( + @Value("${application.service.start.date}") String startDateString, + @Value("${application.service.end.date}") String endDateString) { + this.startDate = LocalDate.parse(startDateString); + this.endDate = LocalDate.parse(endDateString); + } + + @Override + protected boolean doInternal(HttpServletRequest request) { + LocalDate currentDate = LocalDate.now(); + + if (currentDate.isBefore(startDate) || currentDate.isAfter(endDate)) { + throw new ServiceUnavailableException(DATE_RESTRICTED_ERROR); + } + + return true; + } + + @Override + protected boolean isPermittedApi(HttpServletRequest request) { + return getNotAllowedRequestMatchers().stream().noneMatch(matcher -> matcher.matches(request)); + } + + @Override + public List getNotAllowedRequestMatchers() { + return List.of( + new RequestMatcher(HttpMethod.POST, USER_LOGIN), + new RequestMatcher(HttpMethod.GET, ISSUE_BOOTH_QR), + new RequestMatcher(HttpMethod.POST, VISIT_BOOTH) + ); + } +} From 523b72ea69ee30a8e788618eed13f4de4ec4badd Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:28:04 +0900 Subject: [PATCH 6/9] =?UTF-8?q?feat:=20BoothOperationTimeRestrictionInterc?= =?UTF-8?q?eptor=20=EA=B5=AC=ED=98=84=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...thOperationTimeRestrictionInterceptor.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main/java/org/mju_likelion/festival/common/restriction/time_restriction/BoothOperationTimeRestrictionInterceptor.java diff --git a/src/main/java/org/mju_likelion/festival/common/restriction/time_restriction/BoothOperationTimeRestrictionInterceptor.java b/src/main/java/org/mju_likelion/festival/common/restriction/time_restriction/BoothOperationTimeRestrictionInterceptor.java new file mode 100644 index 0000000..ba8f7da --- /dev/null +++ b/src/main/java/org/mju_likelion/festival/common/restriction/time_restriction/BoothOperationTimeRestrictionInterceptor.java @@ -0,0 +1,54 @@ +package org.mju_likelion.festival.common.restriction.time_restriction; + +import static org.mju_likelion.festival.common.api.ApiPaths.ISSUE_BOOTH_QR; +import static org.mju_likelion.festival.common.api.ApiPaths.VISIT_BOOTH; +import static org.mju_likelion.festival.common.exception.type.ErrorType.BOOTH_RESTRICTED_ERROR; + +import jakarta.servlet.http.HttpServletRequest; +import java.time.LocalTime; +import java.util.List; +import org.mju_likelion.festival.common.exception.ServiceUnavailableException; +import org.mju_likelion.festival.common.interceptor.RestInterceptor; +import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; +import org.mju_likelion.festival.common.util.request_matcher.RequestRestrictionProvider; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Component; + +@Component +public class BoothOperationTimeRestrictionInterceptor extends RestInterceptor implements + RequestRestrictionProvider { + + private final LocalTime startTime; + private final LocalTime endTime; + + public BoothOperationTimeRestrictionInterceptor( + @Value("${booth.open.time}") String boothOpenTimeString, + @Value("${booth.close.time}") String boothCloseTimeString) { + this.startTime = LocalTime.parse(boothOpenTimeString); + this.endTime = LocalTime.parse(boothCloseTimeString); + } + + @Override + protected boolean doInternal(HttpServletRequest request) { + LocalTime currentTime = LocalTime.now(); + if (currentTime.isBefore(startTime) || currentTime.isAfter(endTime)) { + throw new ServiceUnavailableException(BOOTH_RESTRICTED_ERROR); + } + + return true; + } + + @Override + protected boolean isPermittedApi(HttpServletRequest request) { + return getNotAllowedRequestMatchers().stream().noneMatch(matcher -> matcher.matches(request)); + } + + @Override + public List getNotAllowedRequestMatchers() { + return List.of( + new RequestMatcher(HttpMethod.GET, ISSUE_BOOTH_QR), + new RequestMatcher(HttpMethod.POST, VISIT_BOOTH) + ); + } +} From 713e8f3c062f4433af563517f1b2b38fd3ee60e7 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:28:41 +0900 Subject: [PATCH 7/9] =?UTF-8?q?feat:=20=EB=B6=80=EC=8A=A4=20=EC=9A=B4?= =?UTF-8?q?=EC=98=81,=20=EC=B6=95=EC=A0=9C=20=EC=9A=B4=EC=98=81=20restrict?= =?UTF-8?q?ion=20=EC=9D=B8=ED=84=B0=EC=85=89=ED=84=B0=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/mju_likelion/festival/common/config/WebConfig.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/mju_likelion/festival/common/config/WebConfig.java b/src/main/java/org/mju_likelion/festival/common/config/WebConfig.java index 741c1ec..f23a94f 100644 --- a/src/main/java/org/mju_likelion/festival/common/config/WebConfig.java +++ b/src/main/java/org/mju_likelion/festival/common/config/WebConfig.java @@ -4,6 +4,8 @@ import lombok.RequiredArgsConstructor; import org.mju_likelion.festival.common.authentication.config.AuthenticationConfig; import org.mju_likelion.festival.common.logging.config.LoggingConfig; +import org.mju_likelion.festival.common.restriction.date_restriction.DateRestrictionInterceptor; +import org.mju_likelion.festival.common.restriction.time_restriction.BoothOperationTimeRestrictionInterceptor; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -20,6 +22,8 @@ public class WebConfig implements WebMvcConfigurer { private static final String ALLOWED_METHOD_NAMES = "GET,HEAD,POST,PUT,DELETE,TRACE,OPTIONS,PATCH"; private final AuthenticationConfig authenticationConfig; private final LoggingConfig loggingConfig; + private final DateRestrictionInterceptor dateRestrictionInterceptor; + private final BoothOperationTimeRestrictionInterceptor boothOperationTimeRestrictionInterceptor; @Value("${client.hosts}") private List clientHosts; @@ -41,6 +45,8 @@ public RestTemplate restTemplate() { @Override public void addInterceptors(final InterceptorRegistry registry) { loggingConfig.addInterceptors(registry); + registry.addInterceptor(dateRestrictionInterceptor); + registry.addInterceptor(boothOperationTimeRestrictionInterceptor); authenticationConfig.addInterceptors(registry); } From 0c1bdc30b281f06ea507a61cd7b76ea00a4c535e Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:29:09 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20RestInterceptor=20=EC=99=80=20A?= =?UTF-8?q?llowedRequestMatcherProvider=20=EB=A5=BC=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractAuthenticationInterceptor.java | 43 ++++--------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/AbstractAuthenticationInterceptor.java b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/AbstractAuthenticationInterceptor.java index ae95bbb..a9eebfa 100644 --- a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/AbstractAuthenticationInterceptor.java +++ b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/AbstractAuthenticationInterceptor.java @@ -3,10 +3,8 @@ import static org.mju_likelion.festival.common.exception.type.ErrorType.JWT_NOT_FOUND_ERROR; import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import org.mju_likelion.festival.auth.util.jwt.JwtUtil; import org.mju_likelion.festival.auth.util.jwt.Payload; import org.mju_likelion.festival.common.authentication.AuthenticationContext; @@ -14,10 +12,12 @@ import org.mju_likelion.festival.common.exception.ForbiddenException; import org.mju_likelion.festival.common.exception.UnauthorizedException; import org.mju_likelion.festival.common.exception.type.ErrorType; +import org.mju_likelion.festival.common.interceptor.RestInterceptor; +import org.mju_likelion.festival.common.util.request_matcher.AllowedRequestMatcherProvider; import org.mju_likelion.festival.common.util.request_matcher.RequestMatcher; -import org.springframework.web.servlet.HandlerInterceptor; -public abstract class AbstractAuthenticationInterceptor implements HandlerInterceptor { +public abstract class AbstractAuthenticationInterceptor extends RestInterceptor implements + AllowedRequestMatcherProvider { private final AuthenticationContext authenticationContext; private final JwtUtil userJwtUtil; @@ -29,15 +29,7 @@ protected AbstractAuthenticationInterceptor(final AuthenticationContext authenti } @Override - public boolean preHandle( - final HttpServletRequest request, - final HttpServletResponse response, - final Object handler) { - - if (isPassableRequest(request)) { - return true; - } - + protected boolean doInternal(final HttpServletRequest request) { String accessToken = AuthorizationExtractor.extract(request) .orElseThrow(() -> new UnauthorizedException(JWT_NOT_FOUND_ERROR)); Payload payload = userJwtUtil.getPayload(accessToken); @@ -52,31 +44,14 @@ public boolean preHandle( return true; } - private boolean isPassableRequest(final HttpServletRequest request) { - return isOptionsRequest(request) || isRequestPermitted(request); - } - - private boolean isOptionsRequest(final HttpServletRequest request) { - return Objects.equals(request.getMethod(), "OPTIONS"); - } - - /** - * HTTP 메서드에 따른 요청 허용 여부를 판단한다. - * - * @param request 요청 - * @return 허용 여부 - */ - private boolean isRequestPermitted(final HttpServletRequest request) { + @Override + protected boolean isPermittedApi(final HttpServletRequest request) { return getAllowedRequestMatchers().stream() .anyMatch(matcher -> matcher.matches(request)); } - /** - * 허용 요청 매처 목록을 반환한다. 오버라이딩하지 않는다면 빈 목록을 반환한다. - * - * @return 요청 매처 목록 - */ - protected List getAllowedRequestMatchers() { + @Override + public List getAllowedRequestMatchers() { return new ArrayList<>(); } From db1f37207be09755389dce7ca622cb0eb9a06a38 Mon Sep 17 00:00:00 2001 From: Kim Daehyeon Date: Sat, 5 Oct 2024 18:29:40 +0900 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20=EA=B5=AC=ED=98=84=EC=B2=B4?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20=EC=A0=91=EA=B7=BC=20=EC=A0=9C?= =?UTF-8?q?=EC=96=B4=EC=9E=90=20public=20=EB=B3=80=EA=B2=BD=20-=20#222?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/BoothAdminAuthenticationInterceptor.java | 2 +- .../interceptor/StudentCouncilAuthenticationInterceptor.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/BoothAdminAuthenticationInterceptor.java b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/BoothAdminAuthenticationInterceptor.java index e82fc09..45fc76b 100644 --- a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/BoothAdminAuthenticationInterceptor.java +++ b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/BoothAdminAuthenticationInterceptor.java @@ -26,7 +26,7 @@ public BoothAdminAuthenticationInterceptor( } @Override - protected List getAllowedRequestMatchers() { + public List getAllowedRequestMatchers() { List allowedRequestMatchers = new LinkedList<>(); allowedRequestMatchers.add(new RequestMatcher(HttpMethod.GET, GET_BOOTH)); diff --git a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/StudentCouncilAuthenticationInterceptor.java b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/StudentCouncilAuthenticationInterceptor.java index c7eded1..7edc938 100644 --- a/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/StudentCouncilAuthenticationInterceptor.java +++ b/src/main/java/org/mju_likelion/festival/common/authentication/interceptor/StudentCouncilAuthenticationInterceptor.java @@ -29,7 +29,7 @@ public StudentCouncilAuthenticationInterceptor( } @Override - protected List getAllowedRequestMatchers() { + public List getAllowedRequestMatchers() { List allowedRequestMatchers = new LinkedList<>(); allowedRequestMatchers.add(new RequestMatcher(HttpMethod.GET, GET_ALL_ANNOUNCEMENTS)); allowedRequestMatchers.add(new RequestMatcher(HttpMethod.GET, GET_ANNOUNCEMENT));