728x90
필터
chain.doFilter 무조건 해줘야한다. 안해주면 웹 동작 안함
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");
}
}
스프링 빈 등록
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<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new LogFilter());
filterFilterRegistrationBean.setOrder(1);
filterFilterRegistrationBean.addUrlPatterns("/*");
return filterFilterRegistrationBean;
}
}
같은 요청
728x90
'백엔드 > Spring(Boot)' 카테고리의 다른 글
스프링 인터셉터 - 요청로그 (0) | 2021.10.01 |
---|---|
스프링 서블릿 필터 - 로그인 인증 체크 (0) | 2021.09.30 |
스프링 로그인(쿠키, 세션) (0) | 2021.09.30 |
스프링 Bean Validation (0) | 2021.09.29 |
스프링 API JSON 검증 (0) | 2021.09.29 |