1. Soalan:
要添加一个自定义处理Token的问题,现在实现了方法,却发现拦截器没有被调用。 我是在自定义的HandlerInterceptorAdapter里面重写了preHandle方法。并把这个自定义的HandlerInterceptorAdapter添加到了自定义的WebMvcConfigurerAdapter,在WebMvcConfigurerAdapter添加@Configuration注解,但是却没有被调用!
2. Kod:
AccessTokenVerifyInterceptor of custom HandlerInterceptorAdapter:
@Component public class AccessTokenVerifyInterceptor extends HandlerInterceptorAdapter { private Logger logger = LoggerFactory.getLogger(AccessTokenVerifyInterceptor.class); @Autowired private FFAccessTokenService tokenService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // TODO Auto-generated method stub logger.info("AccessToken executing ..."); return true; } }
Kelas Penyesuai WebMvcConfigurer Tersuai FFWebMvcConfigurer:
@Configuration public class FFWebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerRegistry registry) { // TODO Auto-generated method stub registry.addViewController("/error").setViewName("404.html"); registry.setOrder(Ordered.HIGHEST_PRECEDENCE); super.addViewControllers(registry); } @Override public void configurePathMatch(PathMatchConfigurer configurer) { configurer.setUseSuffixPatternMatch(false); super.configurePathMatch(configurer); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AccessTokenVerifyInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/access-token"); super.addInterceptors(registry); System.out.println("开始开始咯。。。。"); } }
3 Saya harap semua tuan dapat memberi nasihat kepada saya, terima kasih!
/**Alih keluar satu* dan cuba
Tambahkan
ke kelas permulaan@ServletComponentScan
Kemudian anda harus menyiarkan HandlerInterceptorAdapter dan lihat
Selain itu, anotasi @Component dalam 2 tidak bermakna.
Tidak, saya menulis demo ringkas berdasarkan kod anda, dan pemintas boleh dipanggil.