5

springdoc-openapi-ui (Swagger UI) を使用した Spring Boot 2.2 アプリケーションは、HTTP ポートを実行します。アプリケーションは、クラスターの外部からサービスへの HTTPS 要求をルーティングする Ingress を使用して Kubernetes にデプロイされます。

この場合、で利用可能な Swagger UI のhttps://example.com/api/swagger-ui.html「生成されたサーバー URL」が間違っています - http://example.com/api。それはする必要がありますがhttps://example.com/api

Swagger UI は HTTPS によってアクセスされますが、生成されたサーバー URL は引き続き HTTP を使用します。

4

4 に答える 4

3

受け入れられた解決策がうまくいかない場合は、Bean を定義することでいつでも URL を手動で設定できます。

@Bean
public OpenAPI customOpenAPI() {
    Server server = new Server();
    server.setUrl("https://example.com/api");
    return new OpenAPI().servers(List.of(server));
}

また、プロパティを介して URL を定義し、ここに挿入することができます。

于 2021-05-11T02:46:49.393 に答える
2

springdoc-openapiFAQ には、リバース プロキシの背後にあるDoploy をデプロイするにはどうすればよいですか? というセクションがあります。springdoc-openapi-ui.

FAQセクションは拡張できます。

X-Forwarded-ForX-Forwarded ヘッダーがプロキシ (など)によって送信されていることを確認してくださいX-Forwarded-Proto

Undertow ( ) を使用している場合はspring-boot-starter-undertow、プロパティserver.forward-headers-strategy=NATIVEを設定して、Web サーバーが X-Forwarded ヘッダーをネイティブに処理するようにします。また、Undertow を使用していない場合は、Undertow への切り替えを検討してください。

spring-boot-starter-tomcatTomcat ( )を使用している場合は、プロパティを設定server.forward-headers-strategy=NATIVEし、プロパティで信頼するすべての内部プロキシの IP アドレスをリストしてserver.tomcat.internal-proxies=192\\.168\\.\\d{1,3}\\.\\d{1,3}ください。デフォルトでは、10/8、192.168/16、169.254/16、および 127/8 の IP アドレスが信頼されます。

または、Tomcat set property の場合server.forward-headers-strategy=FRAMEWORK

便利なリンク:

于 2020-03-10T20:31:18.450 に答える
0

以下は私のために働いた。

@OpenAPIDefinition(servers = {@server(url = "/", description = "Default Server URL")})
@SpringBootApplication
class App{
// ...
}

また

@OpenAPIDefinition(servers = {@server(url = "/", description = "Default Server URL")})
@Configuration
public class OpenAPIConfig {
@Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("App name")
                        .termsOfService("http://swagger.io/terms/")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")));
    }
}

生成されたサーバー URL は HHTP です - 問題

于 2021-12-08T11:35:22.767 に答える