【问题标题】:How to add "Authorization : Bearer <token>" in header for OAuth2 implicit flows using Springdoc Open API 3 Spec如何使用 Springdoc Open API 3 Spec 在 OAuth2 隐式流的标头中添加“授权:承载 <token>”
【发布时间】:2020-11-15 05:37:35
【问题描述】:

我正在从 Springfox 迁移到 Springdoc Open Api 3,并且我正在尝试实现身份验证流程:

目前,我已经实现了一个隐式的身份验证流程。如下所示:

        @Bean
        public OpenAPI customOpenAPI()
        {
            String authorizeUrl = <authorize-url>;
    
            OAuthFlow oAuthFlow = new OAuthFlow();
            oAuthFlow.authorizationUrl(authorizeUrl);
            
            return new OpenAPI()
                .components(new Components()
                        .addSecuritySchemes("OAuth", new SecurityScheme()
                                .type(Type.OAUTH2)
                                .scheme("bearer")
                                .in(In.HEADER)
                                .bearerFormat("jwt")
                                .flows(new OAuthFlows().implicit(oAuthFlow))
                                )
                        );
            
        }

现在,问题是,我正确地被重定向到 Keycloak 服务器并且身份验证按预期工作,但是当我尝试从 Swagger UI 执行请求时,请求中缺少 Authorization:Bearer &lt;token&gt;

我尝试了多种解决方案,例如在端点上添加安全方案要求,但它不起作用。我错过了什么吗?还是我的实施流程有误?我在发送到后端的每个请求中都需要 Bearer 令牌。

【问题讨论】:

    标签: spring-boot oauth-2.0 swagger openapi springdoc


    【解决方案1】:

    所以,在尝试了几乎所有方法之后,以下解决方案对我有用:

    return new OpenAPI()
        .components(new Components()
            .addSecuritySchemes("OAuth", new SecurityScheme()
                .type(Type.OAUTH2)
                .scheme("bearer")
                .bearerFormat("jwt")
                .in(In.HEADER)
                .name("Authorization")
                .flows(new OAuthFlows().implicit(oAuthFlow))))
                .addSecurityItem(new SecurityRequirement().addList("OAuth"));
    

    所以,我做的大部分配置都是正确的,但必须添加 SecurityRequirement,它要求所有 API 在标头中都有授权令牌。

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2021-05-06
      • 2023-04-11
      • 2019-07-15
      相关资源
      最近更新 更多