顺手记录一下。

import org.springframework.context.annotation.Import;import java.lang.annotation.*;@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import({RoleCheckConfig.class})public @interface EnableRoleCheck {}
import com.cx.demo_role_check.filter.RoleCheckFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import javax.servlet.Filter;public class RoleCheckConfig {        public RoleCheckConfig() {    }    //注入filter    @Bean    public RoleCheckFilter roleCheckFilter(){        return new RoleCheckFilter();    }    //将Filter注册到web    @Bean    public FilterRegistrationBean<Filter> roleCheckFilterRegistration(RoleCheckFilter roleCheckFilter){        FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();        filterFilterRegistrationBean.setFilter(roleCheckFilter);        filterFilterRegistrationBean.setName("roleCheckFilter");        return filterFilterRegistrationBean;    }}
import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class RoleCheckFilter implements Filter {    private String excludeURLRole;    @Override    public void init(FilterConfig filterConfig) throws ServletException {        System.out.println("init");    }    @Override    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {        HttpServletRequest httpServletRequest = (HttpServletRequest)request;        HttpServletResponse httpServletResponse = (HttpServletResponse) response;        System.out.println(httpServletRequest.getRequestURI());        //实现过滤器的性能        if (false){//条件判断  未通过校验 不能够拜访            httpServletResponse.setStatus(403);        }else{//间接拜访接口            filterChain.doFilter(request,response);        }    }    @Override    public void destroy() {        System.out.println("destroy");    }}

在其余的我的项目外面援用相干的jar,启动类上加上相干的注解,性能即可失效。

<dependency>    <groupId>com.cx</groupId>    <artifactId>demo_role_check</artifactId>    <version>0.0.1-SNAPSHOT</version></dependency>
import com.cx.demo_role_check.config.EnableRoleCheck;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableRoleCheckpublic class DemoRoleCheckTestApplication {    public static void main(String[] args) {        SpringApplication.run(DemoRoleCheckTestApplication.class, args);    }}