实现 HandlerInterceptor 时避免记录 Swagger 端点?
Avoid logging Swagger Endpoints when you implement HandlerInterceptor?
我已经实现 Spring Boot + springfox-swagger-ui
和 HandlerInterceptor
来记录我的申请请求。当我启动我的应用程序时,所有 swagger 相关端点都被调用,并且所有这些端点都登录到如下所示的请求中。
/webjars/springfox-swagger-ui/fonts/source-code-pro-v7-latin-300.woff2
/webjars/springfox-swagger-ui/fonts/open-sans-v15-latin-700.woff2
/webjars/springfox-swagger-ui/fonts/source-code-pro-v7-latin-300.woff2
/webjars/springfox-swagger-ui/fonts/open-sans-v15-latin-700.woff2
.....
.....
LogRequestInterceptor.java
@Slf4j
public class LogRequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
ServletRequestAttributes attributes = new ServletRequestAttributes(request);
.................
.................
.................
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
printJsonReq(request, userIdentityService.getUserName(), response.getStatus(), getTime(request), handler);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
printJsonReq(request, userIdentityService.getUserName(), response.getStatus(), getTime(request), handler);
}
}
如何防止在 HandlerInterceptors
preHandle
和 postHandle
以及 afterCompletion
方法中记录这些请求?
在下面link您可以查看示例:https://www.baeldung.com/spring-http-logging
我认为这对您的问题很有用
我已经实现 Spring Boot + springfox-swagger-ui
和 HandlerInterceptor
来记录我的申请请求。当我启动我的应用程序时,所有 swagger 相关端点都被调用,并且所有这些端点都登录到如下所示的请求中。
/webjars/springfox-swagger-ui/fonts/source-code-pro-v7-latin-300.woff2
/webjars/springfox-swagger-ui/fonts/open-sans-v15-latin-700.woff2
/webjars/springfox-swagger-ui/fonts/source-code-pro-v7-latin-300.woff2
/webjars/springfox-swagger-ui/fonts/open-sans-v15-latin-700.woff2
.....
.....
LogRequestInterceptor.java
@Slf4j
public class LogRequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
ServletRequestAttributes attributes = new ServletRequestAttributes(request);
.................
.................
.................
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
printJsonReq(request, userIdentityService.getUserName(), response.getStatus(), getTime(request), handler);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
printJsonReq(request, userIdentityService.getUserName(), response.getStatus(), getTime(request), handler);
}
}
如何防止在 HandlerInterceptors
preHandle
和 postHandle
以及 afterCompletion
方法中记录这些请求?
在下面link您可以查看示例:https://www.baeldung.com/spring-http-logging
我认为这对您的问题很有用