diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/core/enhancer/SaTokenJavadocResolver.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/core/enhancer/SaTokenJavadocResolver.java index 426f26a1e..f7c12525c 100644 --- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/core/enhancer/SaTokenJavadocResolver.java +++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/core/enhancer/SaTokenJavadocResolver.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckRole; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.convert.Convert; import io.swagger.v3.oas.models.Operation; import org.dromara.common.doc.core.model.SaTokenSecurityMetadata; import org.springframework.web.method.HandlerMethod; @@ -113,13 +114,13 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver { Object type = getAnnotationValue(annotation, "type"); Object orRole = getAnnotationValue(annotation, "orRole"); - String[] values = convertToStringArray(value); + String[] values = Convert.toStrArray(value); String modeStr = mode != null ? mode.toString() : "AND"; String typeStr = type != null ? type.toString() : ""; - String[] orRoles = convertToStringArray(orRole); + String[] orRoles = Convert.toStrArray(orRole); metadata.addPermission(values, modeStr, typeStr, orRoles); - } catch (Exception e) { + } catch (Exception ignore) { // 忽略解析错误 } } @@ -153,12 +154,12 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver { Object mode = getAnnotationValue(annotation, "mode"); Object type = getAnnotationValue(annotation, "type"); - String[] values = convertToStringArray(value); + String[] values = Convert.toStrArray(value); String modeStr = mode != null ? mode.toString() : "AND"; String typeStr = type != null ? type.toString() : ""; metadata.addRole(values, modeStr, typeStr); - } catch (Exception e) { + } catch (Exception ignore) { // 忽略解析错误 } } @@ -181,20 +182,4 @@ public class SaTokenJavadocResolver implements SaTokenMetadataResolver { } } - /** - * 转换为字符串数组 - */ - private String[] convertToStringArray(Object value) { - if (value == null) { - return new String[0]; - } - if (value instanceof String[]) { - return (String[])value; - } - if (value instanceof String) { - return new String[] {(String)value}; - } - return new String[0]; - } - } diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/handler/OpenApiHandler.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/handler/OpenApiHandler.java index 830665942..b6e0195d3 100644 --- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/handler/OpenApiHandler.java +++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/handler/OpenApiHandler.java @@ -228,21 +228,25 @@ public class OpenApiHandler extends OpenAPIService { else securityParser.buildSecurityRequirement(securityRequirements, operation); } - String description = javadocProvider.get().getMethodJavadocDescription(handlerMethod.getMethod()); - String summary = javadocProvider.get().getFirstSentence(description); - if (StringUtils.isNotBlank(description)){ - operation.setSummary(summary); - } - // 调用SaToken解析器提取JavaDoc中的权限信息 - if (saTokenJavadocResolver.supports(handlerMethod)) { - SaTokenSecurityMetadata metadata = new SaTokenSecurityMetadata(); - saTokenJavadocResolver.resolve(handlerMethod, operation, metadata); - String markdownString = metadata.toMarkdownString(); - if (StringUtils.isNotBlank(markdownString)) { - description = description + markdownString; + + if (javadocProvider.isPresent()) { + String description = javadocProvider.get().getMethodJavadocDescription(handlerMethod.getMethod()); + String summary = javadocProvider.get().getFirstSentence(description); + if (StringUtils.isNotBlank(description)){ + operation.setSummary(summary); } + // 调用SaToken解析器提取JavaDoc中的权限信息 + if (saTokenJavadocResolver.supports(handlerMethod)) { + SaTokenSecurityMetadata metadata = new SaTokenSecurityMetadata(); + saTokenJavadocResolver.resolve(handlerMethod, operation, metadata); + String markdownString = metadata.toMarkdownString(); + if (StringUtils.isNotBlank(markdownString)) { + description = description + markdownString; + } + } + operation.setDescription(description); } - operation.setDescription(description); + return operation; } diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/SaTokenTestController.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/SaTokenTestController.java index c9dada111..66fd3cd84 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/SaTokenTestController.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/controller/SaTokenTestController.java @@ -8,13 +8,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * SaToken 权限测试 + * SaToken 权限测试 接口文档输出测试 * * @author AprilWind */ @Slf4j @RestController -@RequestMapping("/demo/SaToken") +@RequestMapping("/demo/saTokenDoc") public class SaTokenTestController { // ====================== 基础场景:单一校验规则 ======================