1. Frage:
要添加一个自定义处理Token的问题,现在实现了方法,却发现拦截器没有被调用。
我是在自定义的HandlerInterceptorAdapter里面重写了preHandle方法。并把这个自定义的HandlerInterceptorAdapter添加到了自定义的WebMvcConfigurerAdapter,在WebMvcConfigurerAdapter添加@Configuration注解,但是却没有被调用!
2. Code:
AccessTokenVerifyInterceptor des benutzerdefinierten 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;
}
}
Angepasste WebMvcConfigurerAdapter-Klasse 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. Ich hoffe, dass mir alle Meister einen Rat geben können, danke!
/**去掉一个*试试
在启动类加上
@ServletComponentScan
那你应该把 HandlerInterceptorAdapter 贴出来看看
还有就是 2 中那个 @Component 注解 是没有意义的。
不会啊,按照你的代码写了一个简单的Demo,拦截器是可以调用到的。