Spring Boot Swagger OpenAPI 3.0.1 无法呈现此定义错误

问题描述 投票:0回答:0

我有以下堆栈:

Spring Boot : 2.7.3
Spring Security Enabled
springdoc-openapi-ui : 1.6.15

Application.properties

# Swagger Properties
springdoc.api-docs.path=/ics/api/docs
springdoc.swagger-ui.path=/ics/api/swagger-ui.html

依赖性:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.6.15</version>
</dependency>

我在 Spring Security 中的代码

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
    http.cors().and().csrf().disable().authorizeHttpRequests((authz) -> authz.anyRequest().permitAll());
    return http.build();

@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
    return (web) -> web.ignoring().antMatchers("/swagger-ui/**", "/ics/api/**");
}

当我在 localhost 中运行我的应用程序时,我得到以下信息:

api doc at the path : http://localhost:8080/ics/api/docs
swagger at the path : http://localhost:8080/ics/api/swagger-ui/index.html
Swagger Config path : http://localhost:8080/ics/api/docs/swagger-config

localhost api文档内容:

{
    "openapi": "3.0.1",
    "info": {
        "title": "OpenAPI definition",
        "version": "v0"
    },
    "servers": [
    {
        "url": "http://localhost:8080",
        "description": "Generated server url"
    }
    ],
    "paths": {...}
}

localhost Swagger-Config 内容:

{
    "configUrl": "/ics/api/docs/swagger-config",
    "oauth2RedirectUrl": "http://localhost:8080/ics/api/swagger-ui/oauth2-redirect.html",
    "url": "/ics/api/docs",
    "validatorUrl": ""
}

localhost Swagger-UI 内容:

现在,当我在环境(kubernetes 集群)中部署我的应用程序时,我可以同时看到 api-doc 和 swagger 配置,但是在渲染 swagger-UI 时出现以下错误:

然后当我点击右侧的“探索”时,我得到以下内容:

我已经查看了很多论坛,但直到现在我还没有得到任何解决方案。我也尝试过使用默认属性,但结果相同。

更新:

我发现 swagger-ui 在尝试呈现 swagger-config 时,应用程序上下文从 URL 中丢失,因此它无法呈现配置文件。当我明确给出 api-doc 的整个 URL 时,它能够正确呈现。现在 URL 变成了 HTTP 而不是 HTTPS,因此我无法测试 API。谁能帮帮我。

API 命中错误:

Failed to fetch.
Possible Reasons:

CORS
Network Failure
URL scheme must be "http" or "https" for CORS request.

** 请求 URL 包含我检查过的 HTTPS。

java spring-boot swagger swagger-ui
© www.soinside.com 2019 - 2024. All rights reserved.