当前位置: 首页 > 知识库问答 >
问题:

如何在Swagger中自动检索授权令牌?

邢凯歌
2023-03-14

对于工作,我正在处理一个Java项目,我们需要将授权令牌传递给每个请求标头。

在我的SwaggerConfig.java文件中,我有以下内容:

@Override
public Docket createDocket() {
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(getApiInfo())
            ...
            .build()
            .securitySchemes(Arrays.asList(apiKey()));
}

private ApiKey apiKey() {
    return new ApiKey("Authorization", "api_key", "header");
}

这将启用一个“授权”按钮,我可以单击该按钮:

...这会将令牌插入到每个请求的标头中。

然而,在Swagger文档或其他地方的示例中没有任何关于如何自动插入auth令牌的文档。目标是通过调用内部API(使用active directory进行身份验证)来检索身份验证令牌,并将该令牌自动应用于请求头。

我可能可以提取Swagger HTML/JS并修改<code>Swagger ui。html页面或JavaScript来自动调用API并用令牌填充对话框,但这种方法的缺点是,如果我直接修改这些文件,Swagger不容易更新。

是否有 Java 方法可以将自定义 API 密钥插入到请求标头中?

共有1个答案

艾和通
2023-03-14

您可以在您的配置类中尝试这样做

@Configuration
@EnableSwagger2
public class SwaggerConfig {                                    

    private ApiKey apiKey() {
        return new ApiKey("apiKey", "Authorization", "header");
    }

    @Bean
    public Docket api(HttpServletRequest httpReq) {
        return new Docket(DocumentationType.SWAGGER_2).select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                 .securitySchemes(Arrays.asList(apiKey()));
    }
}
 类似资料:
  • 在我的一个Rest API调用中,我需要添加标题“Authorization:partner_id:timestamp signature” 如果公司名称是静态字符串,则可以对其进行硬编码,其中作为合作伙伴的id是查询参数的一部分,用户输入它,签名计算为sha256(机密,密码)。消化编码('base64') 我现在看到只有api_密钥,而且在swagger ui中允许基本授权,我如何以及在哪里实

  • 我正在开发我的第一个Spotify应用程序,现在我正在处理授权过程。 到目前为止,我已经成功地从https://accounts.spotify.com/authorize 现在我通过PHP CURL request发送一个POST请求来获取我的访问令牌。 Spotify对此步骤的说明 我不断收到以下 JSON 错误响应,指示我的grant_type无效,它为我提供了三个有效的选项: {"erro

  • 我试图使用以下所需信息从API生成访问令牌: 授权endpoint:https://api.paylocity.com/identityserver/connect/token 其他值请求必须在请求正文中发布以下表单编码值: grant_type=client_credentials范围=WebLinkAPI 我尝试使用Python'requests'包,但没有成功,请参见下面: 我已经验证了我的

  • 我使用springfox 2.9.2我有这样的api: 女巫来自身份验证服务器。我尝试在swagger中首次调用此服务器,并将其传递给像上面这样的控制器请求。所以我做 在Swagger ui上,授权调用成功返回了令牌,但它没有将令牌添加到请求头中。它会产生 如果我像这样设置令牌:

  • 我的任务是在swagger-ui站点中启用授权按钮。我做了REST-Controller的留档,带有来自springdoc-openapi-ui-依赖项的@操作或@Api响应等注释。现在我应该在昂首阔步的表面启用授权按钮。 我有以下介绍:https://www.baeldung.com/spring-boot-swagger-jwt但在这里我必须包括springfox到我的maven依赖,但当我这

  • 使用场景:用户在安卓APP中已经登录,此时需要访问一个用户已登录才能到达的web页面,我们期望安卓APP已登录的状态,可以无感登录(其实就是自动登录)进入到web页面(把安卓APP的登录状态携带到web网页中) 后台 修改配置文件为前端自动登录页面 修改APP登录接口 前端 自动登录页面 获取url上的参数 login_code,redirect 调用接口 http://ztbcms.loc/Au