我使用的是带有angular 2前端的spring boot,我想在我的swagger配置中添加授权。
我当前的springfox设置如下:
@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添加它?
发布于 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中,所以我这样做了:
var key = localStorage.getItem("MyTokenName");而不是
var key = JSON.parse(localStorage.getItem("MyTokenName"));发布于 2017-01-10 18:57:42
为了将您的JWT令牌添加到Authorization,在您的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 */);
}你可以在here上找到更多信息。
https://stackoverflow.com/questions/41556896
复制相似问题