在CURL中没有显示授权头。

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

我使用的是 springdoc-openapi-ui. 我已经配置了名为 Authorization.当我执行API时 Authorization 没有显示在请求的CURL中。我的其他参数都显示在CURL中,除了 Authorization.

之前,我使用的是 springfox-swagger-ui 而那次是显示在CURL部分。

我也搜索了一下,发现了Note on https:/swagger.iodocsspecificationdescribing-parameters#header-parameters。Note: Header parameters named Accept, Content-Type and Authorization are not allowed.

但我要求使用 Authorization 只作为头部。有什么办法可以实现这一点?

我的 SwaggerConfiguration 是在下面添加的。

@Configuration
public class SwaggerConfiguration {

    @Value("${title:title}")
    private String title;
    @Value("${description:description.}")
    private String description;
    @Value("${version:0.0.1}")
    private String version;

    @Value("${schemeId}")
    String schemeIdentifier;

    @Bean
    public OperationCustomizer customGlobalHeaders() {

        return (Operation operation, HandlerMethod handlerMethod) -> {

            Parameter authorization = new Parameter().in(ParameterIn.HEADER.toString()).name("Authorization")
                    .description("Authorization details JWT token")
                    .schema(new StringSchema()).required(true);

            Parameter applicationId = new Parameter().in(ParameterIn.HEADER.toString()).schema(new StringSchema())
                    .name("Application-Id").description("Originating application or client using the service")
                    .required(false);

            operation.addParametersItem(authorization);
            operation.addParametersItem(applicationId);

            return operation;
        };
    }

    @Bean
    public GroupedOpenApi adminApi() {      

        String[] packagesToscan = { "abc.controller" };

        return GroupedOpenApi.builder().setGroup("Client").packagesToScan(packagesToscan).build();
    }

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI().info(new Info().title(title).version(version).description(description))
                .components(new Components());
    }
}
spring-boot spring-security swagger-ui springdoc-openapi-ui
1个回答
0
投票

我已经搜索了同样的答案。我们不能将授权设置为一个头,并与 springdoc open api.如果我们要使用,那么我们需要启用授权按钮,对 swagger ui.

enter image description here

然后会显示在CURL部分,如下图所示。

enter image description here

在glabal位置启用swagger上的授权按钮的代码。

@Configuration
public class SwaggerConfiguration {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI().info(new 
             Info().title("title").version("version").description("description"))
                .addSecurityItem(new SecurityRequirement().addList("my security"))
                .components(new Components().addSecuritySchemes("my security",
                        new SecurityScheme().name("my 
                 security").type(SecurityScheme.Type.HTTP).scheme("bearer")));
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.