![](/img/trans.png)
[英]How to Activate authorization-Button in swagger-ui with openapi-ui and bearer-token (jwt)?
[英]Issue with Authorization (401) with Bearer JWT token using latest OpenAPI / Swagger UI | Spring Boot
我正在从 Swagger 2.9.2 升级到 -> OpenAPI / Springdocs (1.6.9),它是内置的 Swagger UI(版本 4.10.3)。 使用以下代码与Swagger 2 完美配合,允许令牌毫无问题地传递:
OLD SWAGGER 2 配置类:
...
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.program.programName"))
.build()
.globalRequestParameters(defaultParams());
}
private List<RequestParameter> defaultParams() {
return Collections.singletonList(
new RequestParameterBuilder()
.name("Authorization")
.description("auth token")
.in(ParameterType.HEADER)
.required(true)
.build());
}
}
这是我根据OpenAPI自己的文档添加的新配置类,不幸的是它似乎不起作用。 我还将发布我在尝试访问 /swagger-config json 数据时看到的确切错误的屏幕截图:
新配置(不工作):
...
@Configuration
@ComponentScan(basePackages = {"com.program.programName"})
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info()
.title("Program API")
.description("Application")
.version("v0.0.1"))
.components(new Components()
.addSecuritySchemes("bearerAuth",
new SecurityScheme()
.type(SecurityScheme.Type.HTTP)
.scheme("bearer")
.bearerFormat("JWT"))
.addHeaders("Authorization",
new Header()
.description("auth token")
.required(true)));
}
}
尝试获取 /swagger-config 数据时出现 401 错误的图片
正如您在 ^该屏幕截图中所见,我收到此“无法加载远程配置”。 主 swagger 页面上的错误。 任何帮助,将不胜感激。
你得到这个是因为它无法访问/v3/api-docs/swagger-config
。 您应该配置 Spring Security 以允许访问/v3/api-docs/**
。
对于 Webflux,这将是:
@Configuration
public class SecurityConfiguration {
@Bean
public SecurityWebFilterChain securityWebFilterChain(final ServerHttpSecurity http) {
http
.authorizeExchange()
.pathMatchers("/actuator/**", "/webjars/swagger-ui/**", "/swagger-ui.html", "/v3/api-docs/**").permitAll()
.anyExchange().authenticated()
.and()
.oauth2ResourceServer().jwt();
return http.build();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.