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 36d78a9c..1d76e6a9 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 @@ -2,7 +2,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.somemore.global.auth.authentication.UserIdentity; +import com.somemore.global.auth.cookie.CookieUseCase; import com.somemore.global.auth.jwt.domain.EncodedToken; +import com.somemore.global.auth.jwt.domain.TokenType; import com.somemore.global.auth.jwt.usecase.GenerateTokensOnLoginUseCase; import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; @@ -26,6 +28,7 @@ public class IdPwAuthFilter extends UsernamePasswordAuthenticationFilter { private final AuthenticationManager authenticationManager; private final GenerateTokensOnLoginUseCase generateTokensOnLoginUseCase; + private final CookieUseCase cookieUseCase; private final ObjectMapper objectMapper; @Override @@ -42,9 +45,8 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR response.setStatus(HttpServletResponse.SC_OK); UserIdentity userIdentity = (UserIdentity) authResult.getPrincipal(); - EncodedToken accessToken = generateTokensOnLoginUseCase.generateAuthTokensAndReturnAccessToken(userIdentity); - response.setHeader("Authorization", accessToken.getValueWithPrefix()); + processToken(response, userIdentity); } @Override @@ -55,6 +57,14 @@ protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServle objectMapper.writeValue(response.getWriter(), problemDetail); } + private void processToken(HttpServletResponse response, UserIdentity userIdentity) { + generateTokensOnLoginUseCase.generateAuthTokensAndReturnAccessToken(userIdentity); + + EncodedToken loginToken = generateTokensOnLoginUseCase.generateLoginToken(userIdentity); + + cookieUseCase.setToken(response, loginToken.value(), TokenType.SIGN_IN); + } + private void configureUnauthorizedResponse(HttpServletResponse response) { response.setStatus(HttpStatus.UNAUTHORIZED.value()); response.setContentType(MediaType.APPLICATION_PROBLEM_JSON_VALUE); diff --git a/src/main/java/com/somemore/global/auth/jwt/domain/TokenType.java b/src/main/java/com/somemore/global/auth/jwt/domain/TokenType.java index a155c239..aeb33d1e 100644 --- a/src/main/java/com/somemore/global/auth/jwt/domain/TokenType.java +++ b/src/main/java/com/somemore/global/auth/jwt/domain/TokenType.java @@ -6,7 +6,7 @@ @RequiredArgsConstructor public enum TokenType { - ACCESS(Duration.ofMinutes(30)), + ACCESS(Duration.ofMinutes(1)), REFRESH(Duration.ofDays(7)), SIGN_IN(Duration.ofMinutes(1)), SIGN_OUT(Duration.ZERO); diff --git a/src/main/java/com/somemore/global/config/SecurityConfig.java b/src/main/java/com/somemore/global/config/SecurityConfig.java index 231fd256..06c8cf9b 100644 --- a/src/main/java/com/somemore/global/config/SecurityConfig.java +++ b/src/main/java/com/somemore/global/config/SecurityConfig.java @@ -1,6 +1,7 @@ package com.somemore.global.config; import com.fasterxml.jackson.databind.ObjectMapper; +import com.somemore.global.auth.cookie.CookieUseCase; import com.somemore.global.auth.idpw.filter.IdPwAuthFilter; import com.somemore.global.auth.jwt.filter.JwtAuthFilter; import com.somemore.global.auth.jwt.filter.JwtExceptionFilter; @@ -45,10 +46,10 @@ public AuthenticationManager authenticationManager(AuthenticationConfiguration a public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity, AuthenticationManager authenticationManager, GenerateTokensOnLoginUseCase generateTokensOnLoginUseCase, -// CookieUseCase cookieUseCase, + CookieUseCase cookieUseCase, ObjectMapper objectMapper) throws Exception { - IdPwAuthFilter idPwAuthFilter = new IdPwAuthFilter(authenticationManager, generateTokensOnLoginUseCase, objectMapper); + IdPwAuthFilter idPwAuthFilter = new IdPwAuthFilter(authenticationManager, generateTokensOnLoginUseCase, cookieUseCase, objectMapper); idPwAuthFilter.setFilterProcessesUrl("/api/sign-in/id-pw"); httpSecurity