Spring boot下添加filter

一、定义一个Filter

import org.springframework.core.annotation.Order;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * Created by Administrator on 2018/4/6.
 */
@Order(1)
@WebFilter(filterName="Signature Filter")
public class SignatureFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

        String administrator = servletRequest.getParameter("Administrator");
        if (checkSign(administrator)) {
            filterChain.doFilter(servletRequest, servletResponse);
            return;
        }
        throw new ServletException(" The signature is invalid");
    }

    private boolean checkSign(String administrator) {
        //TODO
        return false;
    }

    @Override
    public void destroy() {

    }
}

 比较核心的代码是自定义类上面加上@WebFilter,其中@Order注解表示执行过滤顺序,值越小,越先执行

2、在Application中增加@ServletComponentScan

@SpringBootApplication
@ServletComponentScan
public class EurekaApplication {
  public static void main(String[] args) {
    SpringApplication.run(EurekaApplication.class, args);
  }
}

 

猜你喜欢

转载自scgaoll.iteye.com/blog/2415765
今日推荐