I am using
quarkus-smallrye-openapi
in the quarkus project, I do not plan to use native UI pages, I use knife4j ui interface myself, so far I have written a quarkus extension to implement this function. However, it is not perfect, because I want to sort the request interface of the ui interface. Unfortunately, quarkus-smallrye-openapi does not provide such a function, so I want to enhance the /q/openapi http request through filters. But the filter did not work on this /q/openapi
http request, why? What should I do? Here is the code for my filter.
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MyServletFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
String requestURI = httpServletRequest.getRequestURI();
System.out.println("filter url:"+requestURI);
chain.doFilter(request,response);
}
}
Add filter code
@BuildStep
FilterBuildItem createFilter(){
return FilterBuildItem.builder("MyServletFilter", MyServletFilter.class.getName())
.addMapping(new FilterBuildItem.FilterMappingInfo(FilterBuildItem.FilterMappingInfo.MappingType.URL,"/*", DispatcherType.REQUEST))
.build();
}
I also found that if the extended used in Jakarta. Servlet.
Filter makes the Jakarta. Ws. Rs. Container. ContainerResponseFilter
failure