JPA

[JPA] JWT를 사용한 로그인 인터셉터 만들기

Song hyun 2024. 10. 25. 09:28
728x90
반응형

[JPA] JWT를 사용한 로그인 인터셉터 만들기

 

@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String jwt = request.getHeader(Define.AUTHORIZATION);
        if(jwt == null || jwt.startsWith((Define.BEARER)){
            throw new Exception401("JWT 토큰을 전달해주세요");
        }

        jwt = jwt.replace(Define.BEARER,"");
        try {
            User sessionUser = jwtUtil.verify(jwt);
            request.setAttribute(Define.SESSION_USER, sessionUser);

            return true;

        } catch (TokenExpiredException e){
            throw new Exception401("토큰 만료 시간이 지났습니다. 다시 로그인하세요.");
        } catch (JWTDecodeException e){
            throw new Exception401("유효하지 않은 토큰입니다.");
        } catch (Exception e){
            throw new Exception500("서버 오류 : "+e.getMessage());
        }
    }
728x90
반응형