Open ray-yhc opened 1 year ago
변조된 토큰을 사용하는 경우. 토큰으로 아무 값이나 사용하는 경우. 토큰이 만료된 경우.
tokenProvider.getAuthentication(token)
https://github.com/hellokitty-coding-club/LGTM-Backend/blob/330785f93aecf9114295638b030a726a3af5a409/API-Server/src/main/java/swm/hkcc/LGTM/app/modules/auth/utils/jwt/JwtFilter.java#L18-L30
https://github.com/hellokitty-coding-club/LGTM-Backend/blob/330785f93aecf9114295638b030a726a3af5a409/API-Server/src/main/java/swm/hkcc/LGTM/app/modules/auth/utils/jwt/TokenProvider.java#L94-L109
simpleValidateToken(token)
@Override protected void doFilterInternal(HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOException { String token = tokenProvider.resolveToken(request); // 토큰 문자열 형식에 대해 검증 ("Bearer xxxxx.xxxx.xxx") simpleValidateToken(token); // check access token token = token.split(" ")[1].trim(); Authentication auth = tokenProvider.getAuthentication(token); SecurityContextHolder.getContext().setAuthentication(auth); filterChain.doFilter(request, response); }
// 41xx : JWT Error JWT_SIGNITURE_ERROR(4003, HttpStatus.UNAUTHORIZED, "손상된 JWT 토큰입니다."), JWT_MALFORMED_ERROR(4004, HttpStatus.UNAUTHORIZED, "JWT 토큰이 올바르지 않습니다."), JWT_EXPIRED_ERROR(4005, HttpStatus.UNAUTHORIZED, "JWT 토큰이 만료되었습니다."),
좋은 것 같습니다! 다만 지금 다른 기능 개발이 우선일 것 같아서, 일단 백로그에 남겨두는건 어떻까요??
넵 좋습니다~
요약
변조된 토큰을 사용하는 경우. 토큰으로 아무 값이나 사용하는 경우. 토큰이 만료된 경우.
AS-IS
tokenProvider.getAuthentication(token)
에서 토큰 검증을 실행합니다.https://github.com/hellokitty-coding-club/LGTM-Backend/blob/330785f93aecf9114295638b030a726a3af5a409/API-Server/src/main/java/swm/hkcc/LGTM/app/modules/auth/utils/jwt/JwtFilter.java#L18-L30
https://github.com/hellokitty-coding-club/LGTM-Backend/blob/330785f93aecf9114295638b030a726a3af5a409/API-Server/src/main/java/swm/hkcc/LGTM/app/modules/auth/utils/jwt/TokenProvider.java#L94-L109
TO-BE
simpleValidateToken(token)
에서는 토큰 문자열 형식에 대해서만 검증을 실행합니다.tokenProvider.getAuthentication(token)
에서 종류에 맞는 예외 발생