Skip to content

Commit

Permalink
fix: 토큰 생성 로직 수정 (#46)
Browse files Browse the repository at this point in the history
* fix: 토큰 헤더 추가 로직 수정

* remove: 토큰 인증 관련 테스트 삭제

* refactor: 리뷰 반영
  • Loading branch information
boyekim authored Feb 7, 2025
1 parent 5e45f9d commit 20965e9
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 61 deletions.
17 changes: 6 additions & 11 deletions src/main/java/kr/allcll/seatfinder/AuthInterceptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.util.Arrays;
import kr.allcll.seatfinder.exception.AllcllErrorCode;
import kr.allcll.seatfinder.exception.AllcllException;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

@Component
public class AuthInterceptor implements HandlerInterceptor {
Expand All @@ -16,21 +17,15 @@ public class AuthInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
if (hasNoToken(request)) {
ThreadLocalHolder.SHARED_TOKEN.set(TokenProvider.create());
String token = TokenProvider.create();
ThreadLocalHolder.SHARED_TOKEN.set(token);
response.addCookie(new Cookie(TOKEN_KEY, token));
return true;
}
ThreadLocalHolder.SHARED_TOKEN.set(findTokenFromCookie(request));
return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) {
if (hasNoToken(request)) {
response.addCookie(new Cookie(TOKEN_KEY, ThreadLocalHolder.SHARED_TOKEN.get()));
}
}

private boolean hasNoToken(HttpServletRequest request) {
if (request.getCookies() == null) {
return true;
Expand All @@ -43,7 +38,7 @@ private String findTokenFromCookie(HttpServletRequest request) {
return Arrays.stream(request.getCookies())
.filter(cookie -> TOKEN_KEY.equals(cookie.getName()))
.findAny()
.orElseThrow(() -> new IllegalArgumentException("쿠키에 토큰이 존재하지 않습니다."))
.orElseThrow(() -> new AllcllException(AllcllErrorCode.TOKEN_NOT_FOUND))
.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ public enum AllcllErrorCode {
PIN_LIMIT_EXCEEDED("이미 %d개의 핀을 등록했습니다."),
DUPLICATE_PIN("%s은(는) 이미 핀 등록된 과목입니다."),
PIN_SUBJECT_MISMATCH("핀에 등록된 과목이 아닙니다."),
TOKEN_NOT_FOUND("쿠키에 토큰이 존재하지 않습니다."),
SUBJECT_NOT_FOUND("존재하지 않는 과목 입니다.");

private String message;
Expand Down
50 changes: 0 additions & 50 deletions src/test/java/kr/allcll/seatfinder/AuthInterceptorTest.java

This file was deleted.

0 comments on commit 20965e9

Please sign in to comment.