diff --git a/src/main/java/com/somemore/global/auth/controller/SignController.java b/src/main/java/com/somemore/global/auth/controller/SignController.java index c1c1b07e..151acbaf 100644 --- a/src/main/java/com/somemore/global/auth/controller/SignController.java +++ b/src/main/java/com/somemore/global/auth/controller/SignController.java @@ -14,7 +14,7 @@ @RestController @RequiredArgsConstructor -@RequestMapping("/api/center") +@RequestMapping("/api") @Tag(name = "Sign API", description = "ID,PW 로그인, 로그아웃") public class SignController { @@ -30,7 +30,7 @@ public class SignController { * * 실제 로그인 절차는 필터에서 처리됩니다. */ - @PostMapping("/sign-in") + @PostMapping("/sign-in/id-pw") public ApiResponse signIn( @RequestParam SignRequestDto signRequestDto ) { diff --git a/src/main/java/com/somemore/global/auth/idpw/filter/IdPwAuthFilter.java b/src/main/java/com/somemore/global/auth/idpw/filter/IdPwAuthFilter.java index 0b26e72e..8833aa4a 100644 --- a/src/main/java/com/somemore/global/auth/idpw/filter/IdPwAuthFilter.java +++ b/src/main/java/com/somemore/global/auth/idpw/filter/IdPwAuthFilter.java @@ -44,18 +44,24 @@ public Authentication attemptAuthentication(HttpServletRequest request, HttpServ @Override protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) { response.setStatus(HttpServletResponse.SC_OK); + String userId = authResult.getName(); + String role = extractRole(authResult); EncodedToken accessToken = generateTokensOnLoginUseCase.saveRefreshTokenAndReturnAccessToken( - UUID.fromString(authResult.getName()), - UserRole.from(authResult.getAuthorities().stream() - .findFirst() - .map(GrantedAuthority::getAuthority) - .orElseThrow(() -> new IllegalStateException("유저 권한 자체가 존재하지 않습니다.")))); + UUID.fromString(userId), + UserRole.from(role)); response.setHeader("Authorization", accessToken.getValueWithPrefix()); // cookieUseCase.setAccessToken(response, accessToken.value()); } + private static String extractRole(Authentication authResult) { + return authResult.getAuthorities().stream() + .findFirst() + .map(GrantedAuthority::getAuthority) + .orElseThrow(() -> new IllegalStateException("유저 권한 자체가 존재하지 않습니다.")); + } + @Override protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException { ProblemDetail problemDetail = buildUnauthorizedProblemDetail(failed); diff --git a/src/main/java/com/somemore/user/domain/UserRole.java b/src/main/java/com/somemore/user/domain/UserRole.java index 710466fd..642a92c5 100644 --- a/src/main/java/com/somemore/user/domain/UserRole.java +++ b/src/main/java/com/somemore/user/domain/UserRole.java @@ -24,7 +24,7 @@ public static UserRole getOAuthUserDefaultRole() { public static UserRole from(String role) { for (UserRole userRole : values()) { - if (userRole.name().equals(role)) { + if (role.contains(userRole.name())) { return userRole; } }