diff --git a/src/main/java/org/recordy/server/auth/domain/AuthPlatform.java b/src/main/java/org/recordy/server/auth/domain/AuthPlatform.java index 48e17913..81dd779c 100644 --- a/src/main/java/org/recordy/server/auth/domain/AuthPlatform.java +++ b/src/main/java/org/recordy/server/auth/domain/AuthPlatform.java @@ -13,7 +13,6 @@ public class AuthPlatform { public enum Type { APPLE, - KAKAO, - ; + KAKAO } } diff --git a/src/main/java/org/recordy/server/auth/repository/AuthRepository.java b/src/main/java/org/recordy/server/auth/repository/AuthRepository.java index 47c1a05e..9b587451 100644 --- a/src/main/java/org/recordy/server/auth/repository/AuthRepository.java +++ b/src/main/java/org/recordy/server/auth/repository/AuthRepository.java @@ -1,9 +1,6 @@ package org.recordy.server.auth.repository; -import java.util.Optional; -import javax.swing.text.html.Option; import org.recordy.server.auth.domain.Auth; -import org.recordy.server.auth.domain.AuthPlatform; import java.util.Optional; diff --git a/src/main/java/org/recordy/server/auth/repository/impl/AuthRedisRepository.java b/src/main/java/org/recordy/server/auth/repository/impl/AuthRedisRepository.java index bca93c6a..fec55638 100644 --- a/src/main/java/org/recordy/server/auth/repository/impl/AuthRedisRepository.java +++ b/src/main/java/org/recordy/server/auth/repository/impl/AuthRedisRepository.java @@ -1,6 +1,5 @@ package org.recordy.server.auth.repository.impl; -import java.util.Optional; import org.recordy.server.auth.domain.AuthEntity; import org.springframework.data.repository.CrudRepository; diff --git a/src/main/java/org/recordy/server/auth/repository/impl/AuthRepositoryImpl.java b/src/main/java/org/recordy/server/auth/repository/impl/AuthRepositoryImpl.java index c8282bc2..09e774f6 100644 --- a/src/main/java/org/recordy/server/auth/repository/impl/AuthRepositoryImpl.java +++ b/src/main/java/org/recordy/server/auth/repository/impl/AuthRepositoryImpl.java @@ -1,12 +1,8 @@ package org.recordy.server.auth.repository.impl; -import java.util.Optional; import lombok.RequiredArgsConstructor; import org.recordy.server.auth.domain.Auth; import org.recordy.server.auth.domain.AuthEntity; -import org.recordy.server.auth.domain.AuthPlatform; -import org.recordy.server.auth.exception.AuthException; -import org.recordy.server.common.message.ErrorMessage; import org.recordy.server.auth.repository.AuthRepository; import org.springframework.stereotype.Repository; diff --git a/src/main/java/org/recordy/server/auth/security/TokenAuthenticationFilter.java b/src/main/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilter.java similarity index 83% rename from src/main/java/org/recordy/server/auth/security/TokenAuthenticationFilter.java rename to src/main/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilter.java index cd1b2dcd..2ceb12ab 100644 --- a/src/main/java/org/recordy/server/auth/security/TokenAuthenticationFilter.java +++ b/src/main/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilter.java @@ -1,10 +1,11 @@ -package org.recordy.server.auth.security; +package org.recordy.server.auth.security.filter; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.recordy.server.auth.exception.AuthException; +import org.recordy.server.auth.security.UserAuthentication; import org.recordy.server.auth.security.handler.AuthFilterExceptionHandler; import org.recordy.server.auth.service.AuthTokenService; import org.recordy.server.auth.service.dto.AuthTokenValidationResult; @@ -20,8 +21,6 @@ import java.util.Arrays; import java.util.stream.Stream; -import static org.recordy.server.auth.service.dto.AuthTokenValidationResult.VALID_JWT; - @Component public class TokenAuthenticationFilter extends OncePerRequestFilter { @@ -45,11 +44,10 @@ public TokenAuthenticationFilter( @Override protected boolean shouldNotFilter(HttpServletRequest request) { - AntPathMatcher uriMatcher = new AntPathMatcher(); String uri = request.getRequestURI(); return Stream.concat(Arrays.stream(authFreeApis), Arrays.stream(authDevApis)) - .anyMatch(api -> uriMatcher.match(api, uri)); + .anyMatch(api -> new AntPathMatcher().match(api, uri)); } @Override @@ -65,16 +63,17 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse filterChain.doFilter(request, response); } - private void validateToken(String token) { - + private void validateToken(String token) throws AuthException { AuthTokenValidationResult validationResult = authTokenService.validateToken(token); - if (validationResult == VALID_JWT) - return; - if (validationResult == AuthTokenValidationResult.EXPIRED_TOKEN) - throw new AuthException(ErrorMessage.EXPIRED_TOKEN); - - throw new AuthException(ErrorMessage.INVALID_TOKEN_VALUE); + switch (validationResult) { + case VALID_TOKEN: + return; + case EXPIRED_TOKEN: + throw new AuthException(ErrorMessage.EXPIRED_TOKEN); + default: + throw new AuthException(ErrorMessage.INVALID_TOKEN_VALUE); + } } private void setUserIntoContext(String token, HttpServletRequest request) { diff --git a/src/main/java/org/recordy/server/auth/security/handler/UndefinedAccessHandler.java b/src/main/java/org/recordy/server/auth/security/handler/UndefinedAccessHandler.java index 90c0df18..9b4588f5 100644 --- a/src/main/java/org/recordy/server/auth/security/handler/UndefinedAccessHandler.java +++ b/src/main/java/org/recordy/server/auth/security/handler/UndefinedAccessHandler.java @@ -1,7 +1,6 @@ package org.recordy.server.auth.security.handler; import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -24,7 +23,7 @@ public class UndefinedAccessHandler implements AccessDeniedHandler { private final ObjectMapper objectMapper; @Override - public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException { response.setCharacterEncoding(StandardCharsets.UTF_8.name()); response.setContentType(APPLICATION_JSON_VALUE); response.setStatus(HttpStatus.NOT_FOUND.value()); diff --git a/src/main/java/org/recordy/server/auth/security/AccessTokenArgumentResolver.java b/src/main/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolver.java similarity index 92% rename from src/main/java/org/recordy/server/auth/security/AccessTokenArgumentResolver.java rename to src/main/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolver.java index 86da3fd2..124dc78b 100644 --- a/src/main/java/org/recordy/server/auth/security/AccessTokenArgumentResolver.java +++ b/src/main/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolver.java @@ -1,4 +1,4 @@ -package org.recordy.server.auth.security; +package org.recordy.server.auth.security.resolver; import org.springframework.core.MethodParameter; import org.springframework.security.core.context.SecurityContextHolder; @@ -20,7 +20,7 @@ public boolean supportsParameter(MethodParameter parameter) { } @Override - public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { + public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { return SecurityContextHolder.getContext() .getAuthentication() .getPrincipal(); diff --git a/src/main/java/org/recordy/server/auth/security/UserId.java b/src/main/java/org/recordy/server/auth/security/resolver/UserId.java similarity index 83% rename from src/main/java/org/recordy/server/auth/security/UserId.java rename to src/main/java/org/recordy/server/auth/security/resolver/UserId.java index 6dc779d1..74ff0574 100644 --- a/src/main/java/org/recordy/server/auth/security/UserId.java +++ b/src/main/java/org/recordy/server/auth/security/resolver/UserId.java @@ -1,4 +1,4 @@ -package org.recordy.server.auth.security; +package org.recordy.server.auth.security.resolver; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/org/recordy/server/auth/service/dto/AuthTokenValidationResult.java b/src/main/java/org/recordy/server/auth/service/dto/AuthTokenValidationResult.java index 8d136ee9..05e65502 100644 --- a/src/main/java/org/recordy/server/auth/service/dto/AuthTokenValidationResult.java +++ b/src/main/java/org/recordy/server/auth/service/dto/AuthTokenValidationResult.java @@ -1,7 +1,7 @@ package org.recordy.server.auth.service.dto; public enum AuthTokenValidationResult { - VALID_JWT, // 유효한 토큰 + VALID_TOKEN, // 유효한 토큰 INVALID_SIGNATURE, // 유효하지 않은 서명 INVALID_TOKEN, // 유효하지 않은 토큰 EXPIRED_TOKEN, // 만료된 토큰 diff --git a/src/main/java/org/recordy/server/auth/service/impl/kakao/AuthKakaoPlatformServiceImpl.java b/src/main/java/org/recordy/server/auth/service/impl/kakao/AuthKakaoPlatformServiceImpl.java index 4eda9461..0220cc06 100644 --- a/src/main/java/org/recordy/server/auth/service/impl/kakao/AuthKakaoPlatformServiceImpl.java +++ b/src/main/java/org/recordy/server/auth/service/impl/kakao/AuthKakaoPlatformServiceImpl.java @@ -21,7 +21,6 @@ public class AuthKakaoPlatformServiceImpl implements AuthPlatformService { @Value("${auth.token.prefix}") private String TOKEN_TYPE; - //인증 플랫폼 서비스 식별 @Override public AuthPlatform getPlatform(UserSignIn userSignIn) { String platformId = getKakaoPlatformId(userSignIn.platformToken()); diff --git a/src/main/java/org/recordy/server/auth/service/impl/token/AuthTokenServiceImpl.java b/src/main/java/org/recordy/server/auth/service/impl/token/AuthTokenServiceImpl.java index 17252da2..59f24b9a 100644 --- a/src/main/java/org/recordy/server/auth/service/impl/token/AuthTokenServiceImpl.java +++ b/src/main/java/org/recordy/server/auth/service/impl/token/AuthTokenServiceImpl.java @@ -5,7 +5,6 @@ import org.recordy.server.auth.domain.AuthToken; import org.recordy.server.auth.exception.AuthException; import org.recordy.server.auth.repository.AuthRepository; -import org.recordy.server.auth.security.UserAuthentication; import org.recordy.server.auth.service.AuthTokenService; import org.recordy.server.auth.service.dto.AuthTokenValidationResult; import org.recordy.server.common.message.ErrorMessage; @@ -76,7 +75,7 @@ public AuthTokenValidationResult validateToken(String token) { try { tokenParser.getBody(token); - return VALID_JWT; + return VALID_TOKEN; } catch (MalformedJwtException ex) { return INVALID_TOKEN; } catch (ExpiredJwtException ex) { diff --git a/src/main/java/org/recordy/server/common/config/SecurityConfig.java b/src/main/java/org/recordy/server/common/config/SecurityConfig.java index 99af4e03..d9793130 100644 --- a/src/main/java/org/recordy/server/common/config/SecurityConfig.java +++ b/src/main/java/org/recordy/server/common/config/SecurityConfig.java @@ -1,7 +1,7 @@ package org.recordy.server.common.config; import lombok.RequiredArgsConstructor; -import org.recordy.server.auth.security.TokenAuthenticationFilter; +import org.recordy.server.auth.security.filter.TokenAuthenticationFilter; import org.recordy.server.auth.security.handler.UndefinedAccessHandler; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; @@ -14,7 +14,6 @@ import org.springframework.security.config.annotation.web.configurers.HttpBasicConfigurer; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS; @@ -42,7 +41,7 @@ public SecurityFilterChain localHttpSecurity(HttpSecurity http) throws Exception @Bean @Profile("dev") - public SecurityFilterChain stageHttpSecurity(HttpSecurity http) throws Exception { + public SecurityFilterChain devHttpSecurity(HttpSecurity http) throws Exception { permitDevelopApis(http); setHttp(http); diff --git a/src/main/java/org/recordy/server/common/config/WebConfig.java b/src/main/java/org/recordy/server/common/config/WebConfig.java index 60264979..27af7c13 100644 --- a/src/main/java/org/recordy/server/common/config/WebConfig.java +++ b/src/main/java/org/recordy/server/common/config/WebConfig.java @@ -1,7 +1,7 @@ package org.recordy.server.common.config; import lombok.RequiredArgsConstructor; -import org.recordy.server.auth.security.AccessTokenArgumentResolver; +import org.recordy.server.auth.security.resolver.AccessTokenArgumentResolver; import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; diff --git a/src/test/java/org/recordy/server/auth/repository/AuthRepositoryIntegrationTest.java b/src/test/java/org/recordy/server/auth/repository/AuthRepositoryIntegrationTest.java index b6232798..9d5ba522 100644 --- a/src/test/java/org/recordy/server/auth/repository/AuthRepositoryIntegrationTest.java +++ b/src/test/java/org/recordy/server/auth/repository/AuthRepositoryIntegrationTest.java @@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test; import org.recordy.server.auth.domain.Auth; import org.recordy.server.auth.domain.AuthPlatform; +import org.recordy.server.auth.repository.impl.AuthRedisRepository; import org.recordy.server.util.DomainFixture; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -13,32 +14,33 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest public class AuthRepositoryIntegrationTest { @Autowired private AuthRepository authRepository; + @Autowired + private AuthRedisRepository authRedisRepository; + + @BeforeEach + void tearDown() { + authRedisRepository.deleteAll(); + System.out.println("shibal"); + authRedisRepository.findAll().forEach(System.out::println); + } @Test - void save를_통해_인증_데이터를_저장할_수_있다() { + void save를_통해_Auth_객체를_저장할_수_있다() { // given - String id = "abc"; boolean isSignedUp = true; - Auth auth = new Auth( - new AuthPlatform(id, AuthPlatform.Type.KAKAO), - DomainFixture.createAuthToken(), - isSignedUp - ); - // when - Auth result = authRepository.save(auth); + Auth result = authRepository.save(DomainFixture.createAuth(isSignedUp)); // then assertAll( - () -> assertThat(result.getPlatform().getId()).isEqualTo(id), + () -> assertThat(result.getPlatform().getId()).isEqualTo(DomainFixture.PLATFORM_ID), () -> assertThat(result.getPlatform().getType()).isEqualTo(AuthPlatform.Type.KAKAO), () -> assertThat(result.getToken().getAccessToken()).isEqualTo(DomainFixture.ACCESS_TOKEN), () -> assertThat(result.getToken().getRefreshToken()).isEqualTo(DomainFixture.REFRESH_TOKEN), @@ -46,25 +48,41 @@ public class AuthRepositoryIntegrationTest { ); } + @Test + void delete를_통해_Auth_객체를_삭제할_수_있다() { + // given + Auth auth = authRepository.save(DomainFixture.createAuth(false)); + + // when + authRepository.delete(auth); + + // then + assertThat(authRepository.findByPlatformId(auth.getPlatform().getId())).isEmpty(); + } + + @Test + void delete를_통해_존재하지_않는_Auth_객체를_삭제하더라도_에러가_발생하지_않는다() { + // given + Auth auth = DomainFixture.createAuth(false); + + // when, then + assertThatCode(() -> authRepository.delete(auth)) + .doesNotThrowAnyException(); + } + @Test void findByPlatformId를_통해_플랫폼_ID로_인증_데이터를_조회할_수_있다() { // given - String id = "abc"; boolean isSignedUp = true; - - Auth auth = new Auth( - new AuthPlatform(id, AuthPlatform.Type.KAKAO), - DomainFixture.createAuthToken(), - isSignedUp - ); - authRepository.save(auth); + authRepository.save(DomainFixture.createAuth(isSignedUp)); // when - Auth result = authRepository.findByPlatformId(id).orElse(null); + Auth result = authRepository.findByPlatformId(DomainFixture.PLATFORM_ID) + .orElse(null); // then assertAll( - () -> assertThat(result.getPlatform().getId()).isEqualTo(id), + () -> assertThat(result.getPlatform().getId()).isEqualTo(DomainFixture.PLATFORM_ID), () -> assertThat(result.getPlatform().getType()).isEqualTo(AuthPlatform.Type.KAKAO), () -> assertThat(result.getToken().getAccessToken()).isEqualTo(DomainFixture.ACCESS_TOKEN), () -> assertThat(result.getToken().getRefreshToken()).isEqualTo(DomainFixture.REFRESH_TOKEN), @@ -82,28 +100,21 @@ public class AuthRepositoryIntegrationTest { } @Test - void ffindByRefreshToken를_통해_refresh_token으로_인증_데이터를_조회할_수_있다() { + void findByRefreshToken을_통해_refresh_token으로_인증_데이터를_조회할_수_있다() { // given - String id = "abc"; - boolean isSignedUp = true; - - Auth auth = new Auth( - new AuthPlatform(id, AuthPlatform.Type.KAKAO), - DomainFixture.createAuthToken(), - isSignedUp - ); - authRepository.save(auth); + Auth auth = authRepository.save(DomainFixture.createAuth(true)); // when - Auth result = authRepository.findByRefreshToken(DomainFixture.REFRESH_TOKEN).orElse(null); + Auth result = authRepository.findByRefreshToken(auth.getToken().getRefreshToken()) + .orElse(null); // then assertAll( - () -> assertThat(result.getPlatform().getId()).isEqualTo(id), + () -> assertThat(result.getPlatform().getId()).isEqualTo(auth.getPlatform().getId()), () -> assertThat(result.getPlatform().getType()).isEqualTo(AuthPlatform.Type.KAKAO), () -> assertThat(result.getToken().getAccessToken()).isEqualTo(DomainFixture.ACCESS_TOKEN), () -> assertThat(result.getToken().getRefreshToken()).isEqualTo(DomainFixture.REFRESH_TOKEN), - () -> assertThat(result.isSignedUp()).isEqualTo(isSignedUp) + () -> assertThat(result.isSignedUp()).isEqualTo(auth.isSignedUp()) ); } @@ -115,42 +126,4 @@ public class AuthRepositoryIntegrationTest { //then assertThat(result).isEmpty(); } - - - @Test - void delete를_통해_Auth_객체를_삭제할_수_있다() { - // given - String id = "abc"; - boolean isSignedUp = true; - - Auth auth = new Auth( - new AuthPlatform(id, AuthPlatform.Type.KAKAO), - DomainFixture.createAuthToken(), - isSignedUp - ); - authRepository.save(auth); - - // when - authRepository.delete(auth); - - // then - assertThat(authRepository.findByPlatformId(id)).isEmpty(); - } - - @Test - void delete를_통해_존재하지_않는_Auth_객체를_삭제하더라도_에러가_발생하지_않는다() { - // given - String id = "abc"; - boolean isSignedUp = true; - - Auth auth = new Auth( - new AuthPlatform(id, AuthPlatform.Type.KAKAO), - DomainFixture.createAuthToken(), - isSignedUp - ); - - // when, then - assertThatCode(() -> authRepository.delete(auth)) - .doesNotThrowAnyException(); - } } diff --git a/src/test/java/org/recordy/server/auth/security/TokenAuthenticationFilterTest.java b/src/test/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilterTest.java similarity index 98% rename from src/test/java/org/recordy/server/auth/security/TokenAuthenticationFilterTest.java rename to src/test/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilterTest.java index e89fab6f..f40e88e2 100644 --- a/src/test/java/org/recordy/server/auth/security/TokenAuthenticationFilterTest.java +++ b/src/test/java/org/recordy/server/auth/security/filter/TokenAuthenticationFilterTest.java @@ -1,4 +1,4 @@ -package org.recordy.server.auth.security; +package org.recordy.server.auth.security.filter; import jakarta.servlet.http.HttpServletResponse; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/org/recordy/server/auth/security/handler/AuthFilterExceptionHandlerTest.java b/src/test/java/org/recordy/server/auth/security/handler/AuthFilterExceptionHandlerTest.java index 0b30714f..cfdd0025 100644 --- a/src/test/java/org/recordy/server/auth/security/handler/AuthFilterExceptionHandlerTest.java +++ b/src/test/java/org/recordy/server/auth/security/handler/AuthFilterExceptionHandlerTest.java @@ -1,6 +1,5 @@ package org.recordy.server.auth.security.handler; -import jakarta.servlet.http.HttpServletResponse; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.recordy.server.auth.exception.AuthException; @@ -8,10 +7,7 @@ import org.recordy.server.mock.FakeContainer; import org.springframework.mock.web.MockHttpServletResponse; -import java.io.IOException; - import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; class AuthFilterExceptionHandlerTest { diff --git a/src/test/java/org/recordy/server/auth/security/AccessTokenArgumentResolverTest.java b/src/test/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolverTest.java similarity index 98% rename from src/test/java/org/recordy/server/auth/security/AccessTokenArgumentResolverTest.java rename to src/test/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolverTest.java index 75f4de87..e2701e91 100644 --- a/src/test/java/org/recordy/server/auth/security/AccessTokenArgumentResolverTest.java +++ b/src/test/java/org/recordy/server/auth/security/resolver/AccessTokenArgumentResolverTest.java @@ -1,4 +1,4 @@ -package org.recordy.server.auth.security; +package org.recordy.server.auth.security.resolver; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/org/recordy/server/auth/service/AuthTokenServiceTest.java b/src/test/java/org/recordy/server/auth/service/AuthTokenServiceTest.java index 39ab3a39..60eebbd4 100644 --- a/src/test/java/org/recordy/server/auth/service/AuthTokenServiceTest.java +++ b/src/test/java/org/recordy/server/auth/service/AuthTokenServiceTest.java @@ -50,8 +50,8 @@ void init() { // then assertAll( - () -> assertThat(authTokenService.validateToken(authToken.getAccessToken())).isEqualTo(VALID_JWT), - () -> assertThat(authTokenService.validateToken(authToken.getRefreshToken())).isEqualTo(VALID_JWT) + () -> assertThat(authTokenService.validateToken(authToken.getAccessToken())).isEqualTo(VALID_TOKEN), + () -> assertThat(authTokenService.validateToken(authToken.getRefreshToken())).isEqualTo(VALID_TOKEN) ); } @@ -61,7 +61,7 @@ void init() { String invalidToken = "invalidToken"; // then - assertThat(authTokenService.validateToken(invalidToken)).isNotEqualTo(VALID_JWT); + assertThat(authTokenService.validateToken(invalidToken)).isNotEqualTo(VALID_TOKEN); } @Test @@ -93,6 +93,20 @@ void init() { assertThat(result).isEqualTo(EMPTY_TOKEN); } + @Test + void getTokenFromRequest을_통해_HttpRequest에서_토큰을_추출한다() { + // given + MockHttpServletRequest request = new MockHttpServletRequest(); + String token = "Bearer token"; + request.addHeader(HttpHeaders.AUTHORIZATION, token); + + // when + String result = authTokenService.getTokenFromRequest(request); + + // then + assertThat(result).isEqualTo("token"); + } + @Test void 토큰을_파싱하여_prefix를_제외하고_반환한다() { // given @@ -188,7 +202,6 @@ void init() { } - // TODO : fix @Test void 주어진_refreshToken으로부터_platformId를_반환하지_못하면_에러를_던진다() { //given @@ -212,5 +225,4 @@ void init() { //then assertThat(userId).isEqualTo(authTokenService.getUserIdFromToken(accessToken)); } - } diff --git a/src/test/java/org/recordy/server/mock/FakeContainer.java b/src/test/java/org/recordy/server/mock/FakeContainer.java index db335956..dc745ea6 100644 --- a/src/test/java/org/recordy/server/mock/FakeContainer.java +++ b/src/test/java/org/recordy/server/mock/FakeContainer.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.recordy.server.auth.repository.AuthRepository; -import org.recordy.server.auth.security.TokenAuthenticationFilter; +import org.recordy.server.auth.security.filter.TokenAuthenticationFilter; import org.recordy.server.auth.security.handler.AuthFilterExceptionHandler; import org.recordy.server.auth.service.AuthPlatformService; import org.recordy.server.auth.service.impl.*;