I have a HandlerInterceptor implemented with jakarta libraries:
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@ControllerAdvice
public class RequestGETInterceptor implements HandlerInterceptor {
/** The log. */
private final Logger log = LoggerFactory.getLogger(this.getClass());
@Autowired
private Tracer tracer;
public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response,
final Object handler) {
if (DispatcherType.REQUEST.name().equals(request.getDispatcherType().name())
&& request.getMethod().equals(HttpMethod.GET.name())) {
Collections.list(request.getHeaderNames()).stream().collect(Collectors.toMap(h -> h, request::getHeader));
request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
if (handler instanceof HandlerMethod) {
((HandlerMethod) handler).getMethod().getName();
}
final Span span = this.tracer.currentSpan();
this.log.info("{} Request {}", request.getMethod(), span.context().spanId());
// log.info("headers: {} {} request: {}", headers, StructuredArguments.keyValue("method", method),
// StructuredArguments.keyValue("request", parametersInput));
}
return true;
}
And I register this Interceptor in configuration of my app with SpringBoot:
@Configuration
public class WebConfigInterceptors implements WebMvcConfigurer {
@Autowired
private RequestGETInterceptor getInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getInterceptor);
}
}
The problem, I think, is that my project uses javax libraries and my library (where the interceptor stay in) use jakarta libraris and doesn't intercept the requests. Any idea for solve this?
Thanks!!!