首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Springfox添加authorization header

向Springfox添加authorization header
EN

Stack Overflow用户
提问于 2017-01-10 05:04:11
回答 2查看 5.6K关注 0票数 3

我使用的是带有angular 2前端的spring boot,我想在我的swagger配置中添加授权。

我当前的springfox设置如下:

代码语言:javascript
复制
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)

          .select()                                  
          .apis(RequestHandlerSelectors.basePackage("mybasepackage"))
          .paths(PathSelectors.ant("/api/*"))

          .build();                                           
    }

}

我的应用程序使用JWT过滤器进行授权,只要令牌在用户浏览器中未过期,我就希望swagger使用它。

我看到我可以像这样添加到HTML文件中:

代码语言:javascript
复制
function addApiKeyAuthorization() {
  var key = JSON.parse(localStorage.getItem("ls.authentication-token"));
  if (key && key.trim() != "") {
    var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("Authorization", "Bearer " + key, "header");
    window.swaggerUi.api.clientAuthorizations.add("bearer", apiKeyAuth);
    log("Set bearer token: " + key);
  }
} 

因为我使用的是Springfox,所以我没有这个选项。有没有办法可以通过Docket api添加它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-11 23:17:58

我有两个依赖项,springfox-swagger2和springfox-swagger-ui。我最终删除了springfox-swagger-ui依赖项。

Jhipster使用了一个示例,其中他们从springfox-swagger2对打包的swagger文件进行Get调用。我能够使用这个例子,只做了一些小改动。

我将swagger-ui配置添加到我的公共文件夹中。因为我现在使用的是HTML文件,而不是生成它,所以我可以使用JavaScript来设置我的JWT令牌。

我的token没有存储在JSON中,所以我这样做了:

代码语言:javascript
复制
var key = localStorage.getItem("MyTokenName");

而不是

代码语言:javascript
复制
var key = JSON.parse(localStorage.getItem("MyTokenName"));
票数 2
EN

Stack Overflow用户

发布于 2017-01-10 18:57:42

为了将您的JWT令牌添加到Authorization,在您的SwaggerConfig类中,添加以下bean:

代码语言:javascript
复制
@Bean
public SecurityConfiguration security() {
    return new SecurityConfiguration(null, // "client id",
            null, // "client secret",
            null, // "realm",
            null, // "app",
            "Bearer " + yourToken, ApiKeyVehicle.HEADER, "Authorization", "," /* scope separator */);
}

你可以在here上找到更多信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41556896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档