Page 485 - MDP2022-3
P. 485

this.jwtTokenProvider  =  tokenProvider;
                     }


                     @Override
                     public  void  doFilter(ServletRequest  servletRequest,  ServletResponse  servletResponse,
             FilterChain  filterChain)  throws  IOException,  ServletException  {
                             HttpServletRequest  httpServletRequest  =  (HttpServletRequest)  servletRequest;
                             String  jwt  =  resolveToken(httpServletRequest);
                             String  requestURI  =  httpServletRequest.getRequestURI();
                             if  (StringUtils.hasText(jwt)  &&  jwtTokenProvider.validateToken(jwt))  {
                                     Authentication  authentication  =  jwtTokenProvider.getAuthentication(jwt);
                                     SecurityContextHolder.getContext().setAuthentication(authentication);
                                     logger.debug("Security   Context에   '{}'   인증   정보를   저장했습니다,   uri:   {}",
             authentication.getName(),  requestURI);
                             }  else  {
                                     logger.debug("유효한  JWT  토큰이  없습니다,  uri:  {}",  requestURI);
                             }


                             filterChain.doFilter(servletRequest,  servletResponse);
                     }


                     private  String  resolveToken(HttpServletRequest  request)  {
                             String  bearerToken  =  request.getHeader(AUTHORIZATION_HEADER);


                             if  (StringUtils.hasText(bearerToken)  &&  bearerToken.startsWith("Bearer  "))  {
                                     return  bearerToken.substring(7);
                             }


                             return  null;
                     }
             }


             com.webmister.semicolon.jwt.JwtSecurityConfig
             import  org.springframework.security.config.annotation.SecurityConfigurerAdapter;
             import  org.springframework.security.config.annotation.web.builders.HttpSecurity;
             import  org.springframework.security.web.DefaultSecurityFilterChain;
             i                 m                   p                 o                  r                  t
             org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;


             public  class  JwtSecurityConfig  extends  SecurityConfigurerAdapter<DefaultSecurityFilterChain,
             HttpSecurity>  {
                     private  JwtTokenProvider  jwtTokenProvider;
                     public  JwtSecurityConfig(JwtTokenProvider  tokenProvider)  {
                             this.jwtTokenProvider  =  tokenProvider;
                     }
   480   481   482   483   484   485   486   487   488   489   490