public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) {
String jwt = request.getHeader("auth");
String payloadKey = "apitest";
HandlerMethod handlerMethod=(HandlerMethod)object;
Class type = handlerMethod.getBeanType();
if (type.isAnnotationPresent(Auth.class)) {
try {
if (jwt == null || !Objects.equals(payloadKey, JwtUtil.parseJWT(jwt).get("info", String.class))) {
return false;
}
}catch (ExpiredJwtException | SignatureException | MalformedJwtException e){
return false;
}
}
log.info("1");
return true;
}
когда jwt имеет значение true, но я вижу, что log.info ("1") запускается 3 раза, почему он запускается 3 раза?
my interceptorConfig:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authenticationInterceptor())
.addPathPatterns("/**");
}
@Bean
public AuthenticationInterceptor authenticationInterceptor() {
return new AuthenticationInterceptor();
}
Я установил @Auth для моего класса контроллера:
@Auth открытый класс ApiController
И когда я очищаю свой preHandle, исключаю "log.info (" 1 "), возвращают true", которые запускаются 3 раза