문제점
package com.secondhand.config;
import com.secondhand.interceptor.LoginInterceptor;
import com.secondhand.user.login.JwtUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
// TODO : CORS 학습 후 addMapping, allowedOrigin, allowedMethods 설정
@Configuration
@RequiredArgsConstructor
public class WebConfig implements WebMvcConfigurer {
    private final JwtUtil jwtUtil;
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("*");
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor(jwtUtil))
                .addPathPatterns("/posts/**")
                .excludePathPatterns("/posts");
    }
}
해결
/**
 * CreatePostInterceptor.class
 */
package com.secondhand.interceptor;
import com.secondhand.exception.login.ExpiredTokenException;
import com.secondhand.exception.login.ManipulatedTokenException;
import com.secondhand.exception.login.NoAuthorizationException;
import com.secondhand.exception.login.NoBearerException;
import com.secondhand.user.login.JwtUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@RequiredArgsConstructor
public class CreatePostInterceptor implements HandlerInterceptor {
    private final JwtUtil jwtUtil;
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if (request.getMethod().equals("POST")) {
            if (request.getHeader("Authorization") == null) {
                throw new NoAuthorizationException();
            }
            String token = request.getHeader("Authorization").split(" ")[1];
            if (!request.getHeader("Authorization").split(" ")[0].equals("Bearer")) {
                throw new NoBearerException();
            }
            if (!jwtUtil.validateTokenIsManipulated(token)) {
                throw new ManipulatedTokenException();
            }
            if (!jwtUtil.validateTokenIsExpired(token)) {
                throw new ExpiredTokenException();
            }
        }
        return true;
    }
}
/**
 * LoginInterceptor.class
 */
package com.secondhand.interceptor;
import com.secondhand.exception.login.ExpiredTokenException;
import com.secondhand.exception.login.ManipulatedTokenException;
import com.secondhand.exception.login.NoAuthorizationException;
import com.secondhand.exception.login.NoBearerException;
import com.secondhand.user.login.JwtUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Slf4j
@RequiredArgsConstructor
public class LoginInterceptor implements HandlerInterceptor {
    private final JwtUtil jwtUtil;
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.info("LoginInterceptor.preHandle");
        log.info("request.getHeader(\\"Authorization\\") : {}", request.getHeader("Authorization"));
        if (request.getHeader("Authorization") == null) {
            throw new NoAuthorizationException();
        }
        log.info("request.getHeader(\\"Authorization\\").split(\\" \\")[0] : {}", request.getHeader("Authorization").split(" ")[0]);
        String token = request.getHeader("Authorization").split(" ")[1];
        if (!request.getHeader("Authorization").split(" ")[0].equals("Bearer")) {
            throw new NoBearerException();
        }
        log.info("jwtUtil.validateTokenIsManipulated(token) : {}", jwtUtil.validateTokenIsManipulated(token));
        if (!jwtUtil.validateTokenIsManipulated(token)) {
            throw new ManipulatedTokenException();
        }
        if (!jwtUtil.validateTokenIsExpired(token)) {
            throw new ExpiredTokenException();
        }
        return true;
    }
}
/**
 * WebConfig.class
 */
@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor(jwtUtil))
                .addPathPatterns("/posts/**")
                .excludePathPatterns("/posts");
        registry.addInterceptor(new CreatePostInterceptor(jwtUtil))
                .addPathPatterns("/posts");
    }