Я впервые пытаюсь создать перехватчик в моем приложении для весенней загрузки, но каким-то образом он не создается автоматически, как описано в руководствах.
Я пытался создать класс WebConfig, который расширяет класс WebMvcConfigurerAdapter и аннотирует его как @Component, но он не работает. Я также пытался создать WebConfig, который реализует интерфейс WebMvcConfigurer с аннотациями @Configuration и @EnableWebMvc, но он также не работал.
текущий класс WebConfig:
@Configuration
@EnableWebMvc
@ComponentScan("com.*")
public class WebConfig implements WebMvcConfigurer {
public WebConfig() {
super();
}
@Autowired
HandlerInterceptor headerModifierInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
System.out.println("------------------hi");
registry.addInterceptor(headerModifierInterceptor);
}
}
Класс применения
@SpringBootApplication
@EnableWebSecurity
@ComponentScan(basePackages = {"com.*"})
@EntityScan("com")
public class CoreRestAPIApplication {
public static void main(String[] args) {
SpringApplication.run(CoreRestAPIApplication.class, args);
}
}
Мой класс перехватчиков:
@Component
public class RestTemplateHeaderModifierInterceptor
implements HandlerInterceptor {
@Autowired
AuthUtil authUtil;
@Autowired
JwtTokenProvider jwtTokenProvider;
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
String resolvedToken = jwtTokenProvider.resolveToken(request);
if (!StringUtils.isEmpty(resolvedToken)) {
String updatedToken = jwtTokenProvider.createToken(jwtTokenProvider.getUsername(resolvedToken), jwtTokenProvider.getAuthentication(resolvedToken).getAuthorities());
response.addHeader(authUtil.AUTH_HEADER_NAME, updatedToken);
}
}
}