개발/JAVA

[SpringBoot] Interceptor 설정

경주초이 2020. 8. 13. 10:13

Interceptor.java

@Component
public class Interceptor extends HandlerInterceptorAdapter {

    Logger log = LoggerFactory.getLogger(this.getClass());

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {

        log.info("/******          MOBILE F/W INTERCEPTOR START         ******/");
        log.info(" Request URI : " + request.getRequestURI());
        log.info(" Request URL : " + request.getRequestURL());

        boolean result = false;

        try {
            log.info("======================================================");
            System.out.println(request.getSession().getAttribute("loginUserId"));

            System.out.println();
            if (excludeUrl(request)) {
                result = true;
            } else if (request.getSession().getAttribute("loginUserId") != null) {
                result = true;
            } else {
                response.sendRedirect("/views/login");
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.info(e.getMessage());
            return false;
        }

        log.info("/******          MOBILE F/W INTERCEPTOR END           ******/");
        log.info("result: " + result);
        return result;

    }

    private boolean excludeUrl(HttpServletRequest request) {
        String uri = request.getRequestURI().toString().trim();

        if (uri.indexOf("/views/login") > -1) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {

        // log.info("Interceptor > postHandle");

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception arg3)
            throws Exception {

        // log.info("Interceptor > afterCompletion");

    }

}

 

InterceptorConfig.java

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    @Autowired
    Interceptor interceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(interceptor).addPathPatterns("/**")
        									.excludePathPatterns("/_nuxt/**") 
                                            .excludePathPatterns("/index.html");
    }

}