顺手记录一下。
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); }}