@@ -44,37 +44,40 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
44
44
String authorization = wrappedRequest .getHeader ("Authorization" );
45
45
String username = "" , token = "" ;
46
46
47
- if ( authorization != null && authorization . startsWith ( "Bearer " )) { // Bearer 토큰 파싱
48
- token = authorization .substring ( 7 ); // jwt token 파싱
49
- try {
47
+ try {
48
+ if ( authorization != null && authorization .startsWith ( "Bearer " )) { // Bearer 토큰 파싱
49
+ token = authorization . substring ( 7 ); // jwt token 파싱
50
50
username = jwtUtil .getUsernameFromToken (token ); // username 가져옴
51
- } catch (ExpiredJwtException e ) {
52
- filterChain .doFilter (wrappedRequest , response );
53
- return ;
54
- }
55
51
56
- // 현재 SecurityContextHolder에 인증객체가 있는지 확인
57
- if (username != null && SecurityContextHolder .getContext ().getAuthentication () == null ) {
58
- UserDetails userDetails ;
59
- try {
60
- userDetails = userDetailsService .loadUserByUsername (username );
61
- } catch (CustomException e ) {
62
- userDetails = userDetailsService .loadUserByKakaoId (username );
63
- }
52
+ // 현재 SecurityContextHolder에 인증객체가 있는지 확인
53
+ if (username != null && SecurityContextHolder .getContext ().getAuthentication () == null ) {
54
+ UserDetails userDetails ;
55
+ try {
56
+ userDetails = userDetailsService .loadUserByUsername (username );
57
+ } catch (CustomException e ) {
58
+ userDetails = userDetailsService .loadUserByKakaoId (username );
59
+ }
64
60
65
- // 토큰 유효성 검증
66
- if (jwtUtil .isValidToken (token , userDetails )) {
67
- UsernamePasswordAuthenticationToken authenticated
68
- = new UsernamePasswordAuthenticationToken (userDetails , null , userDetails .getAuthorities ());
61
+ // 토큰 유효성 검증
62
+ if (jwtUtil .isValidToken (token , userDetails )) {
63
+ UsernamePasswordAuthenticationToken authenticated
64
+ = new UsernamePasswordAuthenticationToken (userDetails , null , userDetails .getAuthorities ());
69
65
70
- authenticated .setDetails (new WebAuthenticationDetailsSource ().buildDetails (wrappedRequest ));
71
- SecurityContextHolder .getContext ().setAuthentication (authenticated );
66
+ authenticated .setDetails (new WebAuthenticationDetailsSource ().buildDetails (wrappedRequest ));
67
+ SecurityContextHolder .getContext ().setAuthentication (authenticated );
72
68
73
- // 토큰 갱신
74
- String newAccessToken = jwtUtil .generateToken (userDetails ).getAccessToken ();
75
- response .setHeader ("Authorization" , "Bearer " + newAccessToken );
69
+ // 토큰 갱신
70
+ String newAccessToken = jwtUtil .generateToken (userDetails ).getAccessToken ();
71
+ response .setHeader ("Authorization" , "Bearer " + newAccessToken );
72
+ }
76
73
}
74
+ } else {
75
+ request .setAttribute ("JWTException" , new CustomException (ErrorCode .JWT_NOT_FOUND ));
77
76
}
77
+ } catch (ExpiredJwtException e ) {
78
+ request .setAttribute ("JWTException" , new CustomException (ErrorCode .JWT_EXPIRED ));
79
+ } catch (Exception e ) {
80
+ request .setAttribute ("JWTException" , new CustomException (ErrorCode .INVALID_CREDENTIALS ));
78
81
}
79
82
80
83
filterChain .doFilter (wrappedRequest , response );
0 commit comments