diff --git a/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java b/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java deleted file mode 100644 index 60a71b032..000000000 --- a/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.solidconnection.security.authentication; - -import com.example.solidconnection.security.userdetails.SiteUserDetails; - -public class SiteUserAuthentication extends JwtAuthentication { - - public SiteUserAuthentication(String token) { - super(token, null); - setAuthenticated(false); - } - - public SiteUserAuthentication(String token, SiteUserDetails principal) { - super(token, principal); - setAuthenticated(true); - } -} diff --git a/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java similarity index 61% rename from src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java rename to src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java index d68458b18..7fe51efee 100644 --- a/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java +++ b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java @@ -4,28 +4,36 @@ import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.userdetails.UserDetails; -public abstract class JwtAuthentication extends AbstractAuthenticationToken { +public class TokenAuthentication extends AbstractAuthenticationToken { - private final String credentials; + private final Object principal; // 인증 주체 - private final Object principal; + private final String credentials; // 증명 수단 - public JwtAuthentication(String token, Object principal) { + public TokenAuthentication(String token) { + super(Collections.emptyList()); + this.principal = null; + this.credentials = token; + setAuthenticated(false); + } + + public TokenAuthentication(String token, Object principal) { super(principal instanceof UserDetails ? ((UserDetails) principal).getAuthorities() : Collections.emptyList()); - this.credentials = token; this.principal = principal; + this.credentials = token; + setAuthenticated(true); } @Override - public Object getCredentials() { - return this.credentials; + public Object getPrincipal() { + return this.principal; } @Override - public Object getPrincipal() { - return this.principal; + public Object getCredentials() { + return this.credentials; } public final String getToken() { diff --git a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java similarity index 65% rename from src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java rename to src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java index a00b77f9a..d0c105884 100644 --- a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java +++ b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java @@ -1,8 +1,6 @@ -package com.example.solidconnection.security.provider; +package com.example.solidconnection.security.authentication; import com.example.solidconnection.auth.service.TokenProvider; -import com.example.solidconnection.security.authentication.JwtAuthentication; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.security.userdetails.SiteUserDetailsService; import lombok.RequiredArgsConstructor; @@ -13,23 +11,23 @@ @Component @RequiredArgsConstructor -public class SiteUserAuthenticationProvider implements AuthenticationProvider { +public class TokenAuthenticationProvider implements AuthenticationProvider { private final SiteUserDetailsService siteUserDetailsService; private final TokenProvider tokenProvider; @Override public Authentication authenticate(Authentication auth) throws AuthenticationException { - JwtAuthentication jwtAuth = (JwtAuthentication) auth; - String token = jwtAuth.getToken(); + TokenAuthentication tokenAuth = (TokenAuthentication) auth; + String token = tokenAuth.getToken(); String username = tokenProvider.parseSubject(token); SiteUserDetails userDetails = (SiteUserDetails) siteUserDetailsService.loadUserByUsername(username); - return new SiteUserAuthentication(token, userDetails); + return new TokenAuthentication(token, userDetails); } @Override public boolean supports(Class authentication) { - return SiteUserAuthentication.class.isAssignableFrom(authentication); + return TokenAuthentication.class.isAssignableFrom(authentication); } } diff --git a/src/main/java/com/example/solidconnection/security/config/AuthenticationManagerConfig.java b/src/main/java/com/example/solidconnection/security/config/AuthenticationManagerConfig.java index 72601237b..68ab7cdad 100644 --- a/src/main/java/com/example/solidconnection/security/config/AuthenticationManagerConfig.java +++ b/src/main/java/com/example/solidconnection/security/config/AuthenticationManagerConfig.java @@ -1,6 +1,6 @@ package com.example.solidconnection.security.config; -import com.example.solidconnection.security.provider.SiteUserAuthenticationProvider; +import com.example.solidconnection.security.authentication.TokenAuthenticationProvider; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -11,12 +11,12 @@ @Configuration public class AuthenticationManagerConfig { - private final SiteUserAuthenticationProvider siteUserAuthenticationProvider; + private final TokenAuthenticationProvider tokenAuthenticationProvider; @Bean public AuthenticationManager authenticationManager() { return new ProviderManager( - siteUserAuthenticationProvider + tokenAuthenticationProvider ); } } diff --git a/src/main/java/com/example/solidconnection/security/config/SecurityConfiguration.java b/src/main/java/com/example/solidconnection/security/config/SecurityConfiguration.java index b12bade83..3667e9d84 100644 --- a/src/main/java/com/example/solidconnection/security/config/SecurityConfiguration.java +++ b/src/main/java/com/example/solidconnection/security/config/SecurityConfiguration.java @@ -5,7 +5,7 @@ import com.example.solidconnection.common.exception.CustomAccessDeniedHandler; import com.example.solidconnection.common.exception.CustomAuthenticationEntryPoint; import com.example.solidconnection.security.filter.ExceptionHandlerFilter; -import com.example.solidconnection.security.filter.JwtAuthenticationFilter; +import com.example.solidconnection.security.filter.TokenAuthenticationFilter; import com.example.solidconnection.security.filter.SignOutCheckFilter; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; @@ -30,7 +30,7 @@ public class SecurityConfiguration { private final CorsProperties corsProperties; private final ExceptionHandlerFilter exceptionHandlerFilter; private final SignOutCheckFilter signOutCheckFilter; - private final JwtAuthenticationFilter jwtAuthenticationFilter; + private final TokenAuthenticationFilter tokenAuthenticationFilter; private final CustomAuthenticationEntryPoint customAuthenticationEntryPoint; private final CustomAccessDeniedHandler customAccessDeniedHandler; @@ -69,8 +69,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .authenticationEntryPoint(customAuthenticationEntryPoint) .accessDeniedHandler(customAccessDeniedHandler) ) - .addFilterBefore(jwtAuthenticationFilter, BasicAuthenticationFilter.class) - .addFilterBefore(signOutCheckFilter, JwtAuthenticationFilter.class) + .addFilterBefore(tokenAuthenticationFilter, BasicAuthenticationFilter.class) + .addFilterBefore(signOutCheckFilter, TokenAuthenticationFilter.class) .addFilterBefore(exceptionHandlerFilter, SignOutCheckFilter.class) .build(); } diff --git a/src/main/java/com/example/solidconnection/security/filter/SignOutCheckFilter.java b/src/main/java/com/example/solidconnection/security/filter/SignOutCheckFilter.java index 45f8d2106..f35a234f6 100644 --- a/src/main/java/com/example/solidconnection/security/filter/SignOutCheckFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/SignOutCheckFilter.java @@ -3,6 +3,7 @@ import static com.example.solidconnection.common.exception.ErrorCode.USER_ALREADY_SIGN_OUT; import com.example.solidconnection.common.exception.CustomException; +import com.example.solidconnection.security.infrastructure.AuthorizationHeaderParser; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; diff --git a/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java similarity index 77% rename from src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java rename to src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java index a36385085..0a81b860e 100644 --- a/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java @@ -1,7 +1,7 @@ package com.example.solidconnection.security.filter; -import com.example.solidconnection.security.authentication.JwtAuthentication; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; +import com.example.solidconnection.security.authentication.TokenAuthentication; +import com.example.solidconnection.security.infrastructure.AuthorizationHeaderParser; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -19,7 +19,7 @@ @Component @RequiredArgsConstructor -public class JwtAuthenticationFilter extends OncePerRequestFilter { +public class TokenAuthenticationFilter extends OncePerRequestFilter { private final AuthenticationManager authenticationManager; private final AuthorizationHeaderParser authorizationHeaderParser; @@ -34,14 +34,10 @@ public void doFilterInternal(@NonNull HttpServletRequest request, return; } - JwtAuthentication authToken = createAuthentication(token.get()); + TokenAuthentication authToken = new TokenAuthentication(token.get()); Authentication auth = authenticationManager.authenticate(authToken); SecurityContextHolder.getContext().setAuthentication(auth); filterChain.doFilter(request, response); } - - private JwtAuthentication createAuthentication(String token) { - return new SiteUserAuthentication(token); - } } diff --git a/src/main/java/com/example/solidconnection/security/filter/AuthorizationHeaderParser.java b/src/main/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParser.java similarity index 93% rename from src/main/java/com/example/solidconnection/security/filter/AuthorizationHeaderParser.java rename to src/main/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParser.java index 9360b8c8a..0c104d58d 100644 --- a/src/main/java/com/example/solidconnection/security/filter/AuthorizationHeaderParser.java +++ b/src/main/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParser.java @@ -1,4 +1,4 @@ -package com.example.solidconnection.security.filter; +package com.example.solidconnection.security.infrastructure; import jakarta.servlet.http.HttpServletRequest; import java.util.Optional; diff --git a/src/test/java/com/example/solidconnection/common/resolver/AuthorizedUserResolverTest.java b/src/test/java/com/example/solidconnection/common/resolver/AuthorizedUserResolverTest.java index 541f1edc9..c671c9a76 100644 --- a/src/test/java/com/example/solidconnection/common/resolver/AuthorizedUserResolverTest.java +++ b/src/test/java/com/example/solidconnection/common/resolver/AuthorizedUserResolverTest.java @@ -3,11 +3,12 @@ import static com.example.solidconnection.common.exception.ErrorCode.AUTHENTICATION_FAILED; 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.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; import com.example.solidconnection.common.exception.CustomException; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; +import com.example.solidconnection.security.authentication.TokenAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; @@ -87,8 +88,8 @@ class security_context_에_저장된_사용자가_없는_경우 { } } - private SiteUserAuthentication createAuthenticationWithUser(SiteUser siteUser) { + private TokenAuthentication createAuthenticationWithUser(SiteUser siteUser) { SiteUserDetails userDetails = new SiteUserDetails(siteUser); - return new SiteUserAuthentication("token", userDetails); + return new TokenAuthentication("token", userDetails); } } diff --git a/src/test/java/com/example/solidconnection/security/authentication/SiteUserAuthenticationTest.java b/src/test/java/com/example/solidconnection/security/authentication/SiteUserAuthenticationTest.java deleted file mode 100644 index e4586019e..000000000 --- a/src/test/java/com/example/solidconnection/security/authentication/SiteUserAuthenticationTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.example.solidconnection.security.authentication; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.example.solidconnection.security.userdetails.SiteUserDetails; -import com.example.solidconnection.siteuser.domain.ExchangeStatus; -import com.example.solidconnection.siteuser.domain.Role; -import com.example.solidconnection.siteuser.domain.SiteUser; -import org.junit.jupiter.api.Test; - -class SiteUserAuthenticationTest { - - @Test - void 인증_정보에_저장된_토큰을_반환한다() { - // given - String token = "token"; - SiteUserAuthentication authentication = new SiteUserAuthentication(token); - - // when - String result = authentication.getToken(); - - // then - assertThat(result).isEqualTo(token); - } - - @Test - void 인증_정보에_저장된_사용자를_반환한다() { - // given - SiteUserDetails userDetails = new SiteUserDetails(createSiteUser()); - SiteUserAuthentication authentication = new SiteUserAuthentication("token", userDetails); - - // when & then - SiteUserDetails actual = (SiteUserDetails) authentication.getPrincipal(); - - // then - assertThat(actual) - .extracting("siteUser") - .extracting("id") - .isEqualTo(userDetails.getSiteUser().getId()); - } - - @Test - void 인증_전에_생성되면_isAuthenticated_는_false_를_반환한다() { - // given - SiteUserAuthentication authentication = new SiteUserAuthentication("token"); - - // when & then - assertThat(authentication.isAuthenticated()).isFalse(); - } - - @Test - void 인증_후에_생성되면_isAuthenticated_는_true_를_반환한다() { - // given - SiteUserDetails userDetails = new SiteUserDetails(createSiteUser()); - SiteUserAuthentication authentication = new SiteUserAuthentication("token", userDetails); - - // when & then - assertThat(authentication.isAuthenticated()).isTrue(); - } - - private SiteUser createSiteUser() { - return new SiteUser( - "test@example.com", - "nickname", - "profileImageUrl", - ExchangeStatus.CONSIDERING, - Role.MENTEE - ); - } -} diff --git a/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java b/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationProviderTest.java similarity index 77% rename from src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java rename to src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationProviderTest.java index 178e9e50c..c8715f81a 100644 --- a/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java +++ b/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationProviderTest.java @@ -1,4 +1,4 @@ -package com.example.solidconnection.security.provider; +package com.example.solidconnection.security.authentication; import static com.example.solidconnection.common.exception.ErrorCode.AUTHENTICATION_FAILED; import static com.example.solidconnection.common.exception.ErrorCode.INVALID_TOKEN; @@ -8,7 +8,6 @@ import com.example.solidconnection.auth.token.config.JwtProperties; import com.example.solidconnection.common.exception.CustomException; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; @@ -26,10 +25,10 @@ @TestContainerSpringBootTest @DisplayName("사용자 인증정보 provider 테스트") -class SiteUserAuthenticationProviderTest { +class TokenAuthenticationProviderTest { @Autowired - private SiteUserAuthenticationProvider siteUserAuthenticationProvider; + private TokenAuthenticationProvider tokenAuthenticationProvider; @Autowired private JwtProperties jwtProperties; @@ -47,13 +46,13 @@ void setUp() { @Test void 처리할_수_있는_타입인지를_반환한다() { // given - Class supportedType = SiteUserAuthentication.class; + Class supportedType = TokenAuthentication.class; Class notSupportedType = PasswordAuthentication.class; // when & then assertAll( - () -> assertThat(siteUserAuthenticationProvider.supports(supportedType)).isTrue(), - () -> assertThat(siteUserAuthenticationProvider.supports(notSupportedType)).isFalse() + () -> assertThat(tokenAuthenticationProvider.supports(supportedType)).isTrue(), + () -> assertThat(tokenAuthenticationProvider.supports(notSupportedType)).isFalse() ); } @@ -61,10 +60,10 @@ void setUp() { void 유효한_토큰이면_정상적으로_인증_정보를_반환한다() { // given String token = createValidToken(user.getId()); - SiteUserAuthentication auth = new SiteUserAuthentication(token); + TokenAuthentication auth = new TokenAuthentication(token); // when - Authentication result = siteUserAuthenticationProvider.authenticate(auth); + Authentication result = tokenAuthenticationProvider.authenticate(auth); // then assertThat(result).isNotNull(); @@ -80,10 +79,10 @@ class 예외가_발생한다 { @Test void 유효하지_않은_토큰이면_예외가_발생한다() { // given - SiteUserAuthentication expiredAuth = new SiteUserAuthentication(createExpiredToken()); + TokenAuthentication expiredAuth = new TokenAuthentication(createExpiredToken()); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(expiredAuth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(expiredAuth)) .isInstanceOf(CustomException.class) .hasMessageContaining(INVALID_TOKEN.getMessage()); } @@ -91,10 +90,11 @@ class 예외가_발생한다 { @Test void 사용자_정보의_형식이_다르면_예외가_발생한다() { // given - SiteUserAuthentication wrongSubjectTypeAuth = new SiteUserAuthentication(createWrongSubjectTypeToken()); + TokenAuthentication wrongSubjectTypeAuth = new TokenAuthentication( + createWrongSubjectTypeToken()); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(wrongSubjectTypeAuth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(wrongSubjectTypeAuth)) .isInstanceOf(CustomException.class) .hasMessageContaining(INVALID_TOKEN.getMessage()); } @@ -104,10 +104,10 @@ class 예외가_발생한다 { // given long notExistingUserId = user.getId() + 100; String token = createValidToken(notExistingUserId); - SiteUserAuthentication auth = new SiteUserAuthentication(token); + TokenAuthentication auth = new TokenAuthentication(token); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(auth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(auth)) .isInstanceOf(CustomException.class) .hasMessageContaining(AUTHENTICATION_FAILED.getMessage()); } diff --git a/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationTest.java b/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationTest.java new file mode 100644 index 000000000..90e76abc2 --- /dev/null +++ b/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationTest.java @@ -0,0 +1,81 @@ +package com.example.solidconnection.security.authentication; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.example.solidconnection.security.userdetails.SiteUserDetails; +import com.example.solidconnection.siteuser.domain.ExchangeStatus; +import com.example.solidconnection.siteuser.domain.Role; +import com.example.solidconnection.siteuser.domain.SiteUser; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +@DisplayName("토큰 인증 정보 테스트") +class TokenAuthenticationTest { + + @Nested + class Authentication의_인증_정보를_반환한다 { + + @Test + void 토큰을_반환한다() { + // given + String token = "token"; + TokenAuthentication authentication = new TokenAuthentication(token); + + // when + String result = authentication.getToken(); + + // then + assertThat(result).isEqualTo(token); + } + + @Test + void 사용자_정보를_반환한다() { + // given + SiteUserDetails userDetails = new SiteUserDetails(createSiteUser()); + TokenAuthentication authentication = new TokenAuthentication("token", userDetails); + + // when & then + SiteUserDetails actual = (SiteUserDetails) authentication.getPrincipal(); + + // then + assertThat(actual) + .extracting("siteUser") + .extracting("id") + .isEqualTo(userDetails.getSiteUser().getId()); + } + } + + @Nested + class Authentication의_인증_상태를_반환한다 { + + @Test + void 증명_수단만_포함하여_생성하면_미인증_상태이다() { + // given + TokenAuthentication authentication = new TokenAuthentication("token"); + + // when & then + assertThat(authentication.isAuthenticated()).isFalse(); + } + + @Test + void 사용자_정보와_함께_생성하면_인증된_상태이다() { + // given + SiteUserDetails userDetails = new SiteUserDetails(createSiteUser()); + TokenAuthentication authentication = new TokenAuthentication("token", userDetails); + + // when & then + assertThat(authentication.isAuthenticated()).isTrue(); + } + } + + private SiteUser createSiteUser() { + return new SiteUser( + "test@example.com", + "nickname", + "profileImageUrl", + ExchangeStatus.CONSIDERING, + Role.MENTEE + ); + } +} diff --git a/src/test/java/com/example/solidconnection/security/filter/JwtAuthenticationFilterTest.java b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java similarity index 88% rename from src/test/java/com/example/solidconnection/security/filter/JwtAuthenticationFilterTest.java rename to src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java index 009275e06..36d8c3dd8 100644 --- a/src/test/java/com/example/solidconnection/security/filter/JwtAuthenticationFilterTest.java +++ b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java @@ -5,7 +5,7 @@ import static org.mockito.Mockito.spy; import com.example.solidconnection.auth.token.config.JwtProperties; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; +import com.example.solidconnection.security.authentication.TokenAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetailsService; import com.example.solidconnection.support.TestContainerSpringBootTest; import io.jsonwebtoken.Jwts; @@ -25,10 +25,10 @@ @TestContainerSpringBootTest @DisplayName("토큰 인증 필터 테스트") -class JwtAuthenticationFilterTest { +class TokenAuthenticationFilterTest { @Autowired - private JwtAuthenticationFilter jwtAuthenticationFilter; + private TokenAuthenticationFilter tokenAuthenticationFilter; @Autowired private JwtProperties jwtProperties; @@ -53,7 +53,7 @@ void setUp() { request = new MockHttpServletRequest(); // when - jwtAuthenticationFilter.doFilterInternal(request, response, filterChain); + tokenAuthenticationFilter.doFilterInternal(request, response, filterChain); // then assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); @@ -68,11 +68,11 @@ void setUp() { request = createRequestWithToken(token); // when - jwtAuthenticationFilter.doFilterInternal(request, response, filterChain); + tokenAuthenticationFilter.doFilterInternal(request, response, filterChain); // then assertThat(SecurityContextHolder.getContext().getAuthentication()) - .isExactlyInstanceOf(SiteUserAuthentication.class); + .isExactlyInstanceOf(TokenAuthentication.class); then(filterChain).should().doFilter(request, response); } diff --git a/src/test/java/com/example/solidconnection/security/filter/AuthorizationHeaderParserTest.java b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java similarity index 92% rename from src/test/java/com/example/solidconnection/security/filter/AuthorizationHeaderParserTest.java rename to src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java index 809fb8c8a..66ec3c0fb 100644 --- a/src/test/java/com/example/solidconnection/security/filter/AuthorizationHeaderParserTest.java +++ b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java @@ -1,15 +1,17 @@ -package com.example.solidconnection.security.filter; +package com.example.solidconnection.security.infrastructure; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import com.example.solidconnection.support.TestContainerSpringBootTest; import java.util.Optional; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockHttpServletRequest; +@DisplayName("Authorization 해더 파서 테스트") @TestContainerSpringBootTest class AuthorizationHeaderParserTest {