diff --git a/login/src/main/java/hello/login/WebConfig.java b/login/src/main/java/hello/login/WebConfig.java new file mode 100644 index 00000000..143c2c8d --- /dev/null +++ b/login/src/main/java/hello/login/WebConfig.java @@ -0,0 +1,22 @@ +package hello.login; + +import hello.login.web.filter.LogFilter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.servlet.Filter; + +@Configuration +public class WebConfig { + + @Bean + public FilterRegistrationBean logFilter() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>(); + filterRegistrationBean.setFilter(new LogFilter()); + filterRegistrationBean.setOrder(1); + filterRegistrationBean.addUrlPatterns("/*"); + + return filterRegistrationBean; + } +} diff --git a/login/src/main/java/hello/login/web/filter/LogFilter.java b/login/src/main/java/hello/login/web/filter/LogFilter.java new file mode 100644 index 00000000..eca6176c --- /dev/null +++ b/login/src/main/java/hello/login/web/filter/LogFilter.java @@ -0,0 +1,42 @@ +package hello.login.web.filter; + +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.UUID; + +@Slf4j +public class LogFilter implements Filter { + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + log.info("log filter init"); + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + log.info("log filter doFilter"); + + HttpServletRequest httpRequest = (HttpServletRequest) request; + String requestURI = httpRequest.getRequestURI(); + + String uuid = UUID.randomUUID().toString(); + + try { + log.info("REQUEST [{}][{}]", uuid, requestURI); + chain.doFilter(request, response); + } catch (Exception e) { + throw e; + } finally { + log.info("RESPONSE [{}][{}]", uuid, requestURI); + } + } + + + @Override + public void destroy() { + log.info("log filter destroy"); + } +}