hellokitty-coding-club / LGTM-Backend

Looks good to me (LGTM) 코드 리뷰 매칭 플랫폼 Backend
11 stars 3 forks source link

JWT Exception Handling #42

Open ray-yhc opened 1 year ago

ray-yhc commented 1 year ago

요약

변조된 토큰을 사용하는 경우. 토큰으로 아무 값이나 사용하는 경우. 토큰이 만료된 경우.

AS-IS

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

    @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 토큰이 만료되었습니다."),
great-park commented 1 year ago

좋은 것 같습니다! 다만 지금 다른 기능 개발이 우선일 것 같아서, 일단 백로그에 남겨두는건 어떻까요??

ray-yhc commented 1 year ago

넵 좋습니다~