1. Question:
要添加一個自定義處理Token的問題,現在實現了方法,卻發(fā)現攔截器沒有被調用。
我是在自定義的HandlerInterceptorAdapter里面重寫了preHandle方法。并把這個自定義的HandlerInterceptorAdapter添加到了自定義的WebMvcConfigurerAdapter,在WebMvcConfigurerAdapter添加@Configuration注解,但是卻沒有被調用!
2. Code:
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;
}
}
Customized WebMvcConfigurerAdapter class 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. I hope that all the masters can give me some advice, thank you!
認證高級PHP講師
Then you should post the HandlerInterceptorAdapter and take a look
Also, the @Component annotation in 2 is meaningless.
No, I wrote a simple demo based on your code, and the interceptor can be called.
@Configuration
public class FFWebMvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
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("開始開始咯。。。。");
}
}
public class AccessTokenVerifyInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle...");
return true;
}
}