From 8748c47b0dcfb514f400acf54a107841f8a23178 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 18:47:51 +0900 Subject: [PATCH 1/9] =?UTF-8?q?refactor:=20=EC=9D=98=EB=AF=B8=EC=83=81=20?= =?UTF-8?q?=EC=A4=91=EC=9A=94=EB=8F=84=EC=97=90=20=EB=94=B0=EB=9D=BC=20?= =?UTF-8?q?=EB=82=98=EC=97=B4=20=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - '스프링 시큐리티의 용어'에 대해 주석으로 추가 설명을 한다. - 의미상 중요한 것을 위에 위치시킨다. --- .../security/authentication/JwtAuthentication.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java b/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java index d68458b18..1504324fe 100644 --- a/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java +++ b/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java @@ -6,26 +6,26 @@ public abstract class JwtAuthentication extends AbstractAuthenticationToken { - private final String credentials; + private final Object principal; // 인증 주체 - private final Object principal; + private final String credentials; // 증명 수단 public JwtAuthentication(String token, Object principal) { super(principal instanceof UserDetails ? ((UserDetails) principal).getAuthorities() : Collections.emptyList()); - this.credentials = token; this.principal = principal; + this.credentials = token; } @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() { From c886855b337ca5db69065401e640385153c9d5a5 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 18:49:35 +0900 Subject: [PATCH 2/9] =?UTF-8?q?refactor:=20=ED=86=A0=ED=81=B0=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=A0=95=EB=B3=B4=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JwtAuthentication -> TokenAuthentication - Jwt라는 구체 기술을 드러내지 않도록 한다. --- .../security/authentication/SiteUserAuthentication.java | 2 +- .../{JwtAuthentication.java => TokenAuthentication.java} | 4 ++-- .../security/filter/JwtAuthenticationFilter.java | 6 +++--- .../security/provider/SiteUserAuthenticationProvider.java | 6 +++--- ...onFilterTest.java => TokenAuthenticationFilterTest.java} | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) rename src/main/java/com/example/solidconnection/security/authentication/{JwtAuthentication.java => TokenAuthentication.java} (85%) rename src/test/java/com/example/solidconnection/security/filter/{JwtAuthenticationFilterTest.java => TokenAuthenticationFilterTest.java} (98%) diff --git a/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java b/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java index 60a71b032..fd38937bc 100644 --- a/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java +++ b/src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java @@ -2,7 +2,7 @@ import com.example.solidconnection.security.userdetails.SiteUserDetails; -public class SiteUserAuthentication extends JwtAuthentication { +public class SiteUserAuthentication extends TokenAuthentication { public SiteUserAuthentication(String token) { super(token, null); 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 85% 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 1504324fe..6dacc41c2 100644 --- a/src/main/java/com/example/solidconnection/security/authentication/JwtAuthentication.java +++ b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java @@ -4,13 +4,13 @@ import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.userdetails.UserDetails; -public abstract class JwtAuthentication extends AbstractAuthenticationToken { +public abstract class TokenAuthentication extends AbstractAuthenticationToken { private final Object principal; // 인증 주체 private final String credentials; // 증명 수단 - public JwtAuthentication(String token, Object principal) { + public TokenAuthentication(String token, Object principal) { super(principal instanceof UserDetails ? ((UserDetails) principal).getAuthorities() : Collections.emptyList()); diff --git a/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java b/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java index a36385085..34f88c543 100644 --- a/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java @@ -1,6 +1,6 @@ package com.example.solidconnection.security.filter; -import com.example.solidconnection.security.authentication.JwtAuthentication; +import com.example.solidconnection.security.authentication.TokenAuthentication; import com.example.solidconnection.security.authentication.SiteUserAuthentication; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; @@ -34,14 +34,14 @@ public void doFilterInternal(@NonNull HttpServletRequest request, return; } - JwtAuthentication authToken = createAuthentication(token.get()); + TokenAuthentication authToken = createAuthentication(token.get()); Authentication auth = authenticationManager.authenticate(authToken); SecurityContextHolder.getContext().setAuthentication(auth); filterChain.doFilter(request, response); } - private JwtAuthentication createAuthentication(String token) { + private TokenAuthentication createAuthentication(String token) { return new SiteUserAuthentication(token); } } diff --git a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java b/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java index a00b77f9a..3ba248547 100644 --- a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java +++ b/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java @@ -1,7 +1,7 @@ package com.example.solidconnection.security.provider; import com.example.solidconnection.auth.service.TokenProvider; -import com.example.solidconnection.security.authentication.JwtAuthentication; +import com.example.solidconnection.security.authentication.TokenAuthentication; import com.example.solidconnection.security.authentication.SiteUserAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.security.userdetails.SiteUserDetailsService; @@ -20,8 +20,8 @@ public class SiteUserAuthenticationProvider implements AuthenticationProvider { @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); 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 98% 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..d8c6c5f95 100644 --- a/src/test/java/com/example/solidconnection/security/filter/JwtAuthenticationFilterTest.java +++ b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java @@ -25,7 +25,7 @@ @TestContainerSpringBootTest @DisplayName("토큰 인증 필터 테스트") -class JwtAuthenticationFilterTest { +class TokenAuthenticationFilterTest { @Autowired private JwtAuthenticationFilter jwtAuthenticationFilter; From 6f0b9ad80c6d9a683446f091c595996ef436c0c2 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 18:50:30 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=ED=86=A0=ED=81=B0=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=A0=95=EB=B3=B4=20=ED=95=84=ED=84=B0=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JwtAuthenticationFilter -> TokenAuthenticationFilter - Jwt라는 구체 기술을 드러내지 않도록 한다. --- .../security/config/SecurityConfiguration.java | 8 ++++---- ...ticationFilter.java => TokenAuthenticationFilter.java} | 2 +- .../security/filter/TokenAuthenticationFilterTest.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/main/java/com/example/solidconnection/security/filter/{JwtAuthenticationFilter.java => TokenAuthenticationFilter.java} (96%) 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/JwtAuthenticationFilter.java b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java similarity index 96% 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 34f88c543..b3c3b003d 100644 --- a/src/main/java/com/example/solidconnection/security/filter/JwtAuthenticationFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java @@ -19,7 +19,7 @@ @Component @RequiredArgsConstructor -public class JwtAuthenticationFilter extends OncePerRequestFilter { +public class TokenAuthenticationFilter extends OncePerRequestFilter { private final AuthenticationManager authenticationManager; private final AuthorizationHeaderParser authorizationHeaderParser; diff --git a/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java index d8c6c5f95..666e7740d 100644 --- a/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java +++ b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java @@ -28,7 +28,7 @@ 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,7 +68,7 @@ void setUp() { request = createRequestWithToken(token); // when - jwtAuthenticationFilter.doFilterInternal(request, response, filterChain); + tokenAuthenticationFilter.doFilterInternal(request, response, filterChain); // then assertThat(SecurityContextHolder.getContext().getAuthentication()) From 9e6fabdfe0804c9e01940102beac693ab79376ce Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 19:42:31 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor:=20SiteUserAuthentication=EC=9D=84?= =?UTF-8?q?=20TokenAuthentication=EC=9C=BC=EB=A1=9C=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 불필요하게 상속 관계였던 클래스를 하나로 통합한다. - ExpiredTokenAuthentication와 SiteUserAuthentication을 다형성을 이용해 처리하기 위해 상속 관계를 만들었지만, ExpiredTokenAuthentication의 삭제(#308 PR)에 따라, 상속 관계가 필요하지 않게 되었으므로 통합한다. --- .../authentication/SiteUserAuthentication.java | 16 ---------------- .../authentication/TokenAuthentication.java | 10 +++++++++- .../filter/TokenAuthenticationFilter.java | 7 +------ .../provider/SiteUserAuthenticationProvider.java | 5 ++--- .../resolver/AuthorizedUserResolverTest.java | 7 ++++--- .../filter/TokenAuthenticationFilterTest.java | 4 ++-- .../SiteUserAuthenticationProviderTest.java | 13 +++++++------ 7 files changed, 25 insertions(+), 37 deletions(-) delete mode 100644 src/main/java/com/example/solidconnection/security/authentication/SiteUserAuthentication.java 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 fd38937bc..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 TokenAuthentication { - - 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/TokenAuthentication.java b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java index 6dacc41c2..7fe51efee 100644 --- a/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java +++ b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthentication.java @@ -4,18 +4,26 @@ import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.core.userdetails.UserDetails; -public abstract class TokenAuthentication extends AbstractAuthenticationToken { +public class TokenAuthentication extends AbstractAuthenticationToken { private final Object principal; // 인증 주체 private final String credentials; // 증명 수단 + 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.principal = principal; this.credentials = token; + setAuthenticated(true); } @Override diff --git a/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java index b3c3b003d..f769aed45 100644 --- a/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java @@ -1,7 +1,6 @@ package com.example.solidconnection.security.filter; import com.example.solidconnection.security.authentication.TokenAuthentication; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -34,14 +33,10 @@ public void doFilterInternal(@NonNull HttpServletRequest request, return; } - TokenAuthentication authToken = createAuthentication(token.get()); + TokenAuthentication authToken = new TokenAuthentication(token.get()); Authentication auth = authenticationManager.authenticate(authToken); SecurityContextHolder.getContext().setAuthentication(auth); filterChain.doFilter(request, response); } - - private TokenAuthentication createAuthentication(String token) { - return new SiteUserAuthentication(token); - } } diff --git a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java b/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java index 3ba248547..809a52f84 100644 --- a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java +++ b/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java @@ -2,7 +2,6 @@ import com.example.solidconnection.auth.service.TokenProvider; import com.example.solidconnection.security.authentication.TokenAuthentication; -import com.example.solidconnection.security.authentication.SiteUserAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.security.userdetails.SiteUserDetailsService; import lombok.RequiredArgsConstructor; @@ -25,11 +24,11 @@ public Authentication authenticate(Authentication auth) throws AuthenticationExc 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/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/filter/TokenAuthenticationFilterTest.java b/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.java index 666e7740d..36d8c3dd8 100644 --- a/src/test/java/com/example/solidconnection/security/filter/TokenAuthenticationFilterTest.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; @@ -72,7 +72,7 @@ void setUp() { // 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/provider/SiteUserAuthenticationProviderTest.java b/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java index 178e9e50c..06644da24 100644 --- a/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java +++ b/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java @@ -8,7 +8,7 @@ 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.authentication.TokenAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; @@ -47,7 +47,7 @@ void setUp() { @Test void 처리할_수_있는_타입인지를_반환한다() { // given - Class supportedType = SiteUserAuthentication.class; + Class supportedType = TokenAuthentication.class; Class notSupportedType = PasswordAuthentication.class; // when & then @@ -61,7 +61,7 @@ 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); @@ -80,7 +80,7 @@ class 예외가_발생한다 { @Test void 유효하지_않은_토큰이면_예외가_발생한다() { // given - SiteUserAuthentication expiredAuth = new SiteUserAuthentication(createExpiredToken()); + TokenAuthentication expiredAuth = new TokenAuthentication(createExpiredToken()); // when & then assertThatCode(() -> siteUserAuthenticationProvider.authenticate(expiredAuth)) @@ -91,7 +91,8 @@ class 예외가_발생한다 { @Test void 사용자_정보의_형식이_다르면_예외가_발생한다() { // given - SiteUserAuthentication wrongSubjectTypeAuth = new SiteUserAuthentication(createWrongSubjectTypeToken()); + TokenAuthentication wrongSubjectTypeAuth = new TokenAuthentication( + createWrongSubjectTypeToken()); // when & then assertThatCode(() -> siteUserAuthenticationProvider.authenticate(wrongSubjectTypeAuth)) @@ -104,7 +105,7 @@ 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)) From baee895e39271186f46e9830ea6753b646d7f84c Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 19:59:19 +0900 Subject: [PATCH 5/9] =?UTF-8?q?test:=20TokenAuthentication=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SiteUserAuthentication 테스트 코드의 내용을 토대로 작성한다. --- .../SiteUserAuthenticationTest.java | 70 ---------------- .../TokenAuthenticationTest.java | 81 +++++++++++++++++++ 2 files changed, 81 insertions(+), 70 deletions(-) delete mode 100644 src/test/java/com/example/solidconnection/security/authentication/SiteUserAuthenticationTest.java create mode 100644 src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationTest.java 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/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 + ); + } +} From 1ab3cf20fc19d4a8ce0e86d404f29fd8bb97cacd Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 20:00:29 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=ED=86=A0=ED=81=B0=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=A0=95=EB=B3=B4=20provider=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/AuthenticationManagerConfig.java | 6 +++--- ...der.java => TokenAuthenticationProvider.java} | 2 +- ...java => TokenAuthenticationProviderTest.java} | 16 ++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) rename src/main/java/com/example/solidconnection/security/provider/{SiteUserAuthenticationProvider.java => TokenAuthenticationProvider.java} (94%) rename src/test/java/com/example/solidconnection/security/provider/{SiteUserAuthenticationProviderTest.java => TokenAuthenticationProviderTest.java} (87%) 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..5bd208104 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.provider.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/provider/SiteUserAuthenticationProvider.java b/src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java similarity index 94% rename from src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java rename to src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java index 809a52f84..beaa7b302 100644 --- a/src/main/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProvider.java +++ b/src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java @@ -12,7 +12,7 @@ @Component @RequiredArgsConstructor -public class SiteUserAuthenticationProvider implements AuthenticationProvider { +public class TokenAuthenticationProvider implements AuthenticationProvider { private final SiteUserDetailsService siteUserDetailsService; private final TokenProvider tokenProvider; diff --git a/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java b/src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.java similarity index 87% rename from src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java rename to src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.java index 06644da24..5a3995863 100644 --- a/src/test/java/com/example/solidconnection/security/provider/SiteUserAuthenticationProviderTest.java +++ b/src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.java @@ -26,10 +26,10 @@ @TestContainerSpringBootTest @DisplayName("사용자 인증정보 provider 테스트") -class SiteUserAuthenticationProviderTest { +class TokenAuthenticationProviderTest { @Autowired - private SiteUserAuthenticationProvider siteUserAuthenticationProvider; + private TokenAuthenticationProvider tokenAuthenticationProvider; @Autowired private JwtProperties jwtProperties; @@ -52,8 +52,8 @@ void setUp() { // when & then assertAll( - () -> assertThat(siteUserAuthenticationProvider.supports(supportedType)).isTrue(), - () -> assertThat(siteUserAuthenticationProvider.supports(notSupportedType)).isFalse() + () -> assertThat(tokenAuthenticationProvider.supports(supportedType)).isTrue(), + () -> assertThat(tokenAuthenticationProvider.supports(notSupportedType)).isFalse() ); } @@ -64,7 +64,7 @@ void setUp() { TokenAuthentication auth = new TokenAuthentication(token); // when - Authentication result = siteUserAuthenticationProvider.authenticate(auth); + Authentication result = tokenAuthenticationProvider.authenticate(auth); // then assertThat(result).isNotNull(); @@ -83,7 +83,7 @@ class 예외가_발생한다 { TokenAuthentication expiredAuth = new TokenAuthentication(createExpiredToken()); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(expiredAuth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(expiredAuth)) .isInstanceOf(CustomException.class) .hasMessageContaining(INVALID_TOKEN.getMessage()); } @@ -95,7 +95,7 @@ class 예외가_발생한다 { createWrongSubjectTypeToken()); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(wrongSubjectTypeAuth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(wrongSubjectTypeAuth)) .isInstanceOf(CustomException.class) .hasMessageContaining(INVALID_TOKEN.getMessage()); } @@ -108,7 +108,7 @@ class 예외가_발생한다 { TokenAuthentication auth = new TokenAuthentication(token); // when & then - assertThatCode(() -> siteUserAuthenticationProvider.authenticate(auth)) + assertThatCode(() -> tokenAuthenticationProvider.authenticate(auth)) .isInstanceOf(CustomException.class) .hasMessageContaining(AUTHENTICATION_FAILED.getMessage()); } From dcc0c1691a9f112f93f2ec1047e52e76d5870783 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 20:23:23 +0900 Subject: [PATCH 7/9] =?UTF-8?q?refactor:=20=EA=B0=99=EC=9D=80=20=EA=B4=80?= =?UTF-8?q?=EC=8B=AC=EC=82=AC=EC=9D=98=20=ED=8C=8C=EC=9D=BC=EC=9D=B4=20?= =?UTF-8?q?=EA=B0=99=EC=9D=80=20=ED=8C=A8=ED=82=A4=EC=A7=80=EC=97=90=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - authentication 객체와 이를 처리하는 provider가 같은 패키지에 오도록 패키지 이동 --- .../TokenAuthenticationProvider.java | 3 +-- .../security/config/AuthenticationManagerConfig.java | 2 +- .../TokenAuthenticationProviderTest.java | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) rename src/main/java/com/example/solidconnection/security/{provider => authentication}/TokenAuthenticationProvider.java (90%) rename src/test/java/com/example/solidconnection/security/{provider => authentication}/TokenAuthenticationProviderTest.java (97%) diff --git a/src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java similarity index 90% rename from src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java rename to src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java index beaa7b302..d0c105884 100644 --- a/src/main/java/com/example/solidconnection/security/provider/TokenAuthenticationProvider.java +++ b/src/main/java/com/example/solidconnection/security/authentication/TokenAuthenticationProvider.java @@ -1,7 +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.TokenAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.security.userdetails.SiteUserDetailsService; import lombok.RequiredArgsConstructor; 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 5bd208104..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.TokenAuthenticationProvider; +import com.example.solidconnection.security.authentication.TokenAuthenticationProvider; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.java b/src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationProviderTest.java similarity index 97% rename from src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.java rename to src/test/java/com/example/solidconnection/security/authentication/TokenAuthenticationProviderTest.java index 5a3995863..c8715f81a 100644 --- a/src/test/java/com/example/solidconnection/security/provider/TokenAuthenticationProviderTest.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.TokenAuthentication; import com.example.solidconnection.security.userdetails.SiteUserDetails; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; From 3620a1a586d6df69b9f4b12821dd562bb339b7ae Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 13 Jul 2025 20:28:51 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=EA=B5=AC=EC=B2=B4=20=EA=B8=B0?= =?UTF-8?q?=EC=88=A0=EC=9D=B4=20=EB=93=A4=EC=96=B4=EA=B0=84=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EB=A5=BC=20=EB=8B=A4=EB=A5=B8=20=ED=8C=A8?= =?UTF-8?q?=ED=82=A4=EC=A7=80=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - "외부의 구체 기술"관련 코드를 모으는 패키지의 관례적인 이름인 'infrastructure'를 사용한다. --- .../solidconnection/security/filter/SignOutCheckFilter.java | 1 + .../security/filter/TokenAuthenticationFilter.java | 1 + .../{filter => infrastructure}/AuthorizationHeaderParser.java | 2 +- .../AuthorizationHeaderParserTest.java | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) rename src/main/java/com/example/solidconnection/security/{filter => infrastructure}/AuthorizationHeaderParser.java (93%) rename src/test/java/com/example/solidconnection/security/{filter => infrastructure}/AuthorizationHeaderParserTest.java (97%) 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/TokenAuthenticationFilter.java b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java index f769aed45..0a81b860e 100644 --- a/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java +++ b/src/main/java/com/example/solidconnection/security/filter/TokenAuthenticationFilter.java @@ -1,6 +1,7 @@ package com.example.solidconnection.security.filter; 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; 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/security/filter/AuthorizationHeaderParserTest.java b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java similarity index 97% 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..c33b2fa7b 100644 --- a/src/test/java/com/example/solidconnection/security/filter/AuthorizationHeaderParserTest.java +++ b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java @@ -1,4 +1,4 @@ -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; From 4eefddc4fc89c1cb2516f453255b364e9cbea439 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Fri, 18 Jul 2025 23:05:27 +0900 Subject: [PATCH 9/9] =?UTF-8?q?test:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=97=90=20=EC=9D=B4=EB=A6=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/infrastructure/AuthorizationHeaderParserTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java index c33b2fa7b..66ec3c0fb 100644 --- a/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java +++ b/src/test/java/com/example/solidconnection/security/infrastructure/AuthorizationHeaderParserTest.java @@ -5,11 +5,13 @@ 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 {