diff --git a/coder-common-thin-plugins/coder-common-thin-resultex/src/main/java/org/leocoder/thin/resultex/handler/ResultResponseHandler.java b/coder-common-thin-plugins/coder-common-thin-resultex/src/main/java/org/leocoder/thin/resultex/handler/ResultResponseHandler.java index eae1e1d..35e34c7 100755 --- a/coder-common-thin-plugins/coder-common-thin-resultex/src/main/java/org/leocoder/thin/resultex/handler/ResultResponseHandler.java +++ b/coder-common-thin-plugins/coder-common-thin-resultex/src/main/java/org/leocoder/thin/resultex/handler/ResultResponseHandler.java @@ -36,6 +36,14 @@ public class ResultResponseHandler implements ResponseBodyAdvice { */ @Override public boolean supports(@Nullable MethodParameter methodParameter, @Nullable Class> CoderClass) { + // 排除Swagger相关路径,避免干扰OpenAPI文档生成 + if (methodParameter != null && methodParameter.getMethod() != null) { + String className = methodParameter.getMethod().getDeclaringClass().getName(); + // 排除SpringDoc相关的Controller + if (className.contains("springdoc") || className.contains("swagger")) { + return false; + } + } return true; } @@ -43,6 +51,15 @@ public class ResultResponseHandler implements ResponseBodyAdvice { public Object beforeBodyWrite(Object body, @Nullable MethodParameter methodParameter, @Nullable MediaType mediaType, Class> coderClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { // 参数body 代表其实就是SpringMvc的请求的方法的结果 // 对请求的结果在这里统一返回和处理 + + // 排除Swagger相关路径,避免包装OpenAPI文档 + String requestPath = serverHttpRequest.getURI().getPath(); + if (requestPath.startsWith("/v3/api-docs") || + requestPath.startsWith("/swagger-ui") || + requestPath.contains("/swagger") || + requestPath.contains("/api-docs")) { + return body; + } if (body instanceof ErrorHandler errorHandler) { // 如果返回的结果是一个异常的结果,就把异常返回的结构数据倒腾到R.error里面即可 diff --git a/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/java/org/leocoder/thin/satoken/config/CoderSaTokenInterceptor.java b/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/java/org/leocoder/thin/satoken/config/CoderSaTokenInterceptor.java index fb719f4..affafa5 100755 --- a/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/java/org/leocoder/thin/satoken/config/CoderSaTokenInterceptor.java +++ b/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/java/org/leocoder/thin/satoken/config/CoderSaTokenInterceptor.java @@ -52,6 +52,12 @@ public class CoderSaTokenInterceptor implements WebMvcConfigurer { // ignoreUrls.add("/**/*.js"); // 上传路径 ignoreUrls.add(baseFilePath + "/**"); + // Swagger API文档相关路径 + ignoreUrls.add("/swagger-ui/**"); + ignoreUrls.add("/v3/api-docs/**"); + ignoreUrls.add("/v3/api-docs"); + ignoreUrls.add("/swagger-ui.html"); + ignoreUrls.add("/webjars/**"); // 除白名单路径外均需要登录认证 SaRouter.match("/**").notMatch(ignoreUrls).check(r -> StpUtil.checkLogin());