![](/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.