From 1ca5584d7e3200a9af65a099bd26d3593e2ba702 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 07 五月 2026 14:36:08 +0800
Subject: [PATCH] 迁移pro

---
 src/main/java/com/ruoyi/framework/config/SwaggerConfig.java |  177 +++++++++++++++++-----------------------------------------
 1 files changed, 53 insertions(+), 124 deletions(-)

diff --git a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
index ccf8d65..e42ef54 100644
--- a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
+++ b/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -1,124 +1,53 @@
-package com.ruoyi.framework.config;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.ApiKey;
-import springfox.documentation.service.AuthorizationScope;
-import springfox.documentation.service.Contact;
-import springfox.documentation.service.SecurityReference;
-import springfox.documentation.service.SecurityScheme;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spi.service.contexts.SecurityContext;
-import springfox.documentation.spring.web.plugins.Docket;
-
-/**
- * Swagger2鐨勬帴鍙i厤缃�
- * 
- * @author ruoyi
- */
-@Configuration
-public class SwaggerConfig
-{
-    /** 绯荤粺鍩虹閰嶇疆 */
-    @Autowired
-    private RuoYiConfig ruoyiConfig;
-
-    /** 鏄惁寮�鍚痵wagger */
-    @Value("${swagger.enabled}")
-    private boolean enabled;
-
-    /** 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑 */
-    @Value("${swagger.pathMapping}")
-    private String pathMapping;
-
-    /**
-     * 鍒涘缓API
-     */
-    @Bean
-    public Docket createRestApi()
-    {
-        return new Docket(DocumentationType.OAS_30)
-                // 鏄惁鍚敤Swagger
-                .enable(enabled)
-                // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛�
-                .apiInfo(apiInfo())
-                // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず
-                .select()
-                // 鎵弿鎵�鏈夋湁娉ㄨВ鐨刟pi锛岀敤杩欑鏂瑰紡鏇寸伒娲�
-                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
-                // 鎵弿鎸囧畾鍖呬腑鐨剆wagger娉ㄨВ
-                // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
-                // 鎵弿鎵�鏈� .apis(RequestHandlerSelectors.any())
-                .paths(PathSelectors.any())
-                .build()
-                /* 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token */
-                .securitySchemes(securitySchemes())
-                .securityContexts(securityContexts());
-//                .pathMapping(pathMapping);
-    }
-
-    /**
-     * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
-     */
-    private List<SecurityScheme> securitySchemes()
-    {
-        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
-        apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
-        return apiKeyList;
-    }
-
-    /**
-     * 瀹夊叏涓婁笅鏂�
-     */
-    private List<SecurityContext> securityContexts()
-    {
-        List<SecurityContext> securityContexts = new ArrayList<>();
-        securityContexts.add(
-                SecurityContext.builder()
-                        .securityReferences(defaultAuth())
-                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
-                        .build());
-        return securityContexts;
-    }
-
-    /**
-     * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
-     */
-    private List<SecurityReference> defaultAuth()
-    {
-        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
-        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
-        authorizationScopes[0] = authorizationScope;
-        List<SecurityReference> securityReferences = new ArrayList<>();
-        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
-        return securityReferences;
-    }
-
-    /**
-     * 娣诲姞鎽樿淇℃伅
-     */
-    private ApiInfo apiInfo()
-    {
-        // 鐢ˋpiInfoBuilder杩涜瀹氬埗
-        return new ApiInfoBuilder()
-                // 璁剧疆鏍囬
-                .title("鏍囬锛氳嫢渚濈鐞嗙郴缁焈鎺ュ彛鏂囨。")
-                // 鎻忚堪
-                .description("鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...")
-                // 浣滆�呬俊鎭�
-                .contact(new Contact(ruoyiConfig.getName(), null, null))
-                // 鐗堟湰
-                .version("鐗堟湰鍙�:" + ruoyiConfig.getVersion())
-                .build();
-    }
-}
+package com.ruoyi.framework.config;
+
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Contact;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.security.SecurityRequirement;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import org.springdoc.core.models.GroupedOpenApi;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * OpenAPI 鏂囨。閰嶇疆銆�
+ */
+@Configuration
+@ConditionalOnProperty(prefix = "swagger", name = "enabled", havingValue = "true", matchIfMissing = true)
+public class SwaggerConfig
+{
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    @Bean
+    public OpenAPI openAPI()
+    {
+        String schemeName = "Authorization";
+        return new OpenAPI()
+                .info(new Info()
+                        .title("鏍囬锛氳嫢渚濈鐞嗙郴缁熸帴鍙f枃妗�")
+                        .description("鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅锛屽叿浣撳寘鎷� XXX銆乆XX 妯″潡銆�")
+                        .version("鐗堟湰鍙凤細" + ruoyiConfig.getVersion())
+                        .contact(new Contact().name(ruoyiConfig.getName())))
+                .components(new Components().addSecuritySchemes(schemeName,
+                        new SecurityScheme()
+                                .name(schemeName)
+                                .type(SecurityScheme.Type.APIKEY)
+                                .in(SecurityScheme.In.HEADER)))
+                .addSecurityItem(new SecurityRequirement().addList(schemeName));
+    }
+
+    @Bean
+    public GroupedOpenApi defaultOpenApi()
+    {
+        return GroupedOpenApi.builder()
+                .group("default")
+                // 鎵弿椤圭洰鐪熷疄鏆撮湶鐨勬帴鍙h矾寰勶紝涓嶇敤 swagger.pathMapping 鍋氫簩娆¤繃婊わ紝
+                // 鍚﹀垯鍍� /dev-api 杩欑被缃戝叧鍓嶇紑浼氭妸鏈湴 Controller 鍏ㄩ儴杩囨护鎺夈��
+                .pathsToMatch("/**")
+                .build();
+    }
+}

--
Gitblit v1.9.3