1. 程式人生 > >Springboot配置Filter

Springboot配置Filter

1.先寫攔截器

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import javax.servlet.*;

public class SpringBootFilter implements Filter {  

private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SpringBootFilter.class);
@Override
public void init(javax.servlet.FilterConfig filterConfig) throws ServletException {

}  
  
    @Override  
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
         HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
         String url = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
         logger.info(url);
         logger.info("path>>>>"+httpRequest.getRequestURI());
         logger.info("request>>>"+httpRequest);
         logger.info("response>>>"+httpResponse);
         filterChain.doFilter(httpRequest, httpResponse);
    }  
  
    @Override  
    public void destroy() {  
  
    }

}  



2.配置攔截器

import javax.servlet.Filter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FilterConfig {

  /**
     * 配置過濾器
     * @return
     */
    @Bean
    public FilterRegistrationBean someFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(sessionFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("sessionFilter");
        return registration;
    }

    /**
     * 建立一個bean
     * @return
     */
    @Bean(name = "sessionFilter")
    public Filter sessionFilter() {
        return new SpringBootFilter();
    }

}