设置不拦截swagger的请求

package cn.imovie.common.config;

import cn.imovie.enums.CommonConstants;
import org.apache.catalina.filters.RemoteIpFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@Configuration
public class WebConfiguration {
    private static Logger log = LoggerFactory.getLogger(WebConfiguration.class);
    @Bean
    public RemoteIpFilter remoteIpFilter() {
        return new RemoteIpFilter();
    }

    /**
     * 注册过滤器
     * @return
     */
    @Bean
    public FilterRegistrationBean doFilterRegistration() {

        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new MyFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("MyFilter");
        registration.setOrder(1);
        return registration;
    }
    
    public class MyFilter implements Filter {

      @Override
      public void destroy() {
         // TODO Auto-generated method stub
      }

      @Override
      public void doFilter(ServletRequest srequest,ServletResponse sresponse, FilterChain filterChain)
            throws IOException, ServletException {
         // TODO Auto-generated method stub
         HttpServletRequest request = (HttpServletRequest) srequest;
            log.info("this is MyFilter,url :"+request.getRequestURI());
            //不拦截swagger的请求
            if(request.getRequestURI().contains("swagger-")||request.getRequestURI().contains("api-                        docs")||request.getRequestURI().contains("favicon")){

            }else {
                String t=request.getParameter("token");
                if(!CommonConstants.TOKEN.equals(request.getParameter("token"))){
                    System.out.print("非法请求");
                    log.info("非法请求");
                    return;
                }
            }
            filterChain.doFilter(srequest, sresponse);
      }

      @Override
      public void init(FilterConfig arg0) throws ServletException {
         // TODO Auto-generated method stub
      }
    }

}



猜你喜欢

转载自blog.csdn.net/qq_42093488/article/details/85273830