提问者:小点点

将授权标头添加到 Springfox


我使用Spring启动与角2前端,我想添加授权到我的招摇配置。

我当前的Spring狐设置如下所示:

@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文件:

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添加它?


共2个答案

匿名用户

为了将您的JWT令牌添加到授权头,请在您的< code>SwaggerConfig类中添加以下bean:

@Bean
public SecurityConfiguration security() {
    return new SecurityConfiguration(null, // "client id",
            null, // "client secret",
            null, // "realm",
            null, // "app",
            "Bearer " + yourToken, ApiKeyVehicle.HEADER, "Authorization", "," /* scope separator */);
}

您可以在此处找到更多信息。

匿名用户

我有两个依赖项,springfox-swagger2和springfox-swagger-用户界面。

Jhipster使用了一个例子,其中他们从springfox-swagger2中对打包的swagger文件进行Get调用。我可以通过一些小的改动来使用这个例子。

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

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

var key = localStorage.getItem("MyTokenName");

而不是

var key = JSON.parse(localStorage.getItem("MyTokenName"));