Skip to content

Commit 9fd9245

Browse files
authored
[FEATURE] IDPW 로그인시 쿠키로 임시 토큰 발급 (#354)
* feat(token): 임시 수정 * feat(token): 로직 변경 * feat(token): 의존성 주입
1 parent beaa7ad commit 9fd9245

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/main/java/com/somemore/global/auth/idpw/filter/IdPwAuthFilter.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.somemore.global.auth.authentication.UserIdentity;
5+
import com.somemore.global.auth.cookie.CookieUseCase;
56
import com.somemore.global.auth.jwt.domain.EncodedToken;
7+
import com.somemore.global.auth.jwt.domain.TokenType;
68
import com.somemore.global.auth.jwt.usecase.GenerateTokensOnLoginUseCase;
79
import jakarta.servlet.FilterChain;
810
import jakarta.servlet.http.HttpServletRequest;
@@ -26,6 +28,7 @@ public class IdPwAuthFilter extends UsernamePasswordAuthenticationFilter {
2628

2729
private final AuthenticationManager authenticationManager;
2830
private final GenerateTokensOnLoginUseCase generateTokensOnLoginUseCase;
31+
private final CookieUseCase cookieUseCase;
2932
private final ObjectMapper objectMapper;
3033

3134
@Override
@@ -42,9 +45,8 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
4245
response.setStatus(HttpServletResponse.SC_OK);
4346

4447
UserIdentity userIdentity = (UserIdentity) authResult.getPrincipal();
45-
EncodedToken accessToken = generateTokensOnLoginUseCase.generateAuthTokensAndReturnAccessToken(userIdentity);
4648

47-
response.setHeader("Authorization", accessToken.getValueWithPrefix());
49+
processToken(response, userIdentity);
4850
}
4951

5052
@Override
@@ -55,6 +57,14 @@ protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServle
5557
objectMapper.writeValue(response.getWriter(), problemDetail);
5658
}
5759

60+
private void processToken(HttpServletResponse response, UserIdentity userIdentity) {
61+
generateTokensOnLoginUseCase.generateAuthTokensAndReturnAccessToken(userIdentity);
62+
63+
EncodedToken loginToken = generateTokensOnLoginUseCase.generateLoginToken(userIdentity);
64+
65+
cookieUseCase.setToken(response, loginToken.value(), TokenType.SIGN_IN);
66+
}
67+
5868
private void configureUnauthorizedResponse(HttpServletResponse response) {
5969
response.setStatus(HttpStatus.UNAUTHORIZED.value());
6070
response.setContentType(MediaType.APPLICATION_PROBLEM_JSON_VALUE);

src/main/java/com/somemore/global/auth/jwt/domain/TokenType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
@RequiredArgsConstructor
88
public enum TokenType {
9-
ACCESS(Duration.ofMinutes(30)),
9+
ACCESS(Duration.ofMinutes(1)),
1010
REFRESH(Duration.ofDays(7)),
1111
SIGN_IN(Duration.ofMinutes(1)),
1212
SIGN_OUT(Duration.ZERO);

src/main/java/com/somemore/global/config/SecurityConfig.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.somemore.global.config;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.somemore.global.auth.cookie.CookieUseCase;
45
import com.somemore.global.auth.idpw.filter.IdPwAuthFilter;
56
import com.somemore.global.auth.jwt.filter.JwtAuthFilter;
67
import com.somemore.global.auth.jwt.filter.JwtExceptionFilter;
@@ -45,10 +46,10 @@ public AuthenticationManager authenticationManager(AuthenticationConfiguration a
4546
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity,
4647
AuthenticationManager authenticationManager,
4748
GenerateTokensOnLoginUseCase generateTokensOnLoginUseCase,
48-
// CookieUseCase cookieUseCase,
49+
CookieUseCase cookieUseCase,
4950
ObjectMapper objectMapper) throws Exception {
5051

51-
IdPwAuthFilter idPwAuthFilter = new IdPwAuthFilter(authenticationManager, generateTokensOnLoginUseCase, objectMapper);
52+
IdPwAuthFilter idPwAuthFilter = new IdPwAuthFilter(authenticationManager, generateTokensOnLoginUseCase, cookieUseCase, objectMapper);
5253
idPwAuthFilter.setFilterProcessesUrl("/api/sign-in/id-pw");
5354

5455
httpSecurity

0 commit comments

Comments
 (0)