我使用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添加它?
为了将您的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"));