当前位置: 首页 > 后端技术 > Java

自定义Enable--

时间:2023-04-01 23:25:31 Java

,随便记录一下。导入org.springframework.context.annotation.Import;导入java.lang.annotation.*;@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import({RoleCheckConfig.class})public@interfaceEnableRoleCheck{}导入com.cx.demo_role_check.filter.RoleCheckFilter;导入org.springframework.boot.web.servlet.FilterRegistrationBean;导入org.springframework.context.annotation.Bean;导入javax.servlet.Filter;公共类RoleCheckConfig{publicRoleCheckConfig(){}//注册filter@BeanpublicRoleCheckFilterroleCheckFilter(){returnnewRoleCheckFilter();}//将Filter注册到web@BeanfilterFilterRegistrationBean.setFilter(roleCheckFilter);filterFilterRegistrationBean.setName("roleCheckFilter");返回filterFilterRegistrationBean;}}importjavax.servlet.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;publicclassRoleCheckFilterimplementsFilter{privateStringexcludeURLRole;@Overridepublicvoidinit(FilterConfigfilterConfig)throwsServletException{System.out.println("init");}@OverridepublicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainfilterChain)throwsIOException,ServletException{HttpServletRequesthttpServletRequest=(HttpServletRequest)request;HttpServletResponsehttpServletResponse=(HttpServletResponse)响应;System.out.println(httpServletRequest.getRequestURI());//执行过滤函数if(false){//条件判断不通过验证可以访问httpServletResponse.setStatus(403);}else{//直接访问接口文件terChain.doFilter(请求,响应);}}@Overridepublicvoiddestroy(){System.out.println("destroy");}}引用其他项目中的相关jar,在启动类中添加相关注解com.cxdemo_role_check0.0.1-SNAPSHOT导入com.cx.demo_role_check.config.EnableRoleCheck;导入org.springframework.boot.SpringApplication;导入org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableRoleCheckpublicclassDemoRoleCheckTestApplication{publicstaticvoidmain(String[]args){SpringApplication.run(classDemoRoleCheckTest,);}}