From aaef76cc168bf629768e0a3372687fdc210edf59 Mon Sep 17 00:00:00 2001 From: "Wang, Fei" Date: Wed, 7 Aug 2024 11:27:30 -0700 Subject: [PATCH] [KYUUBI #6591] Support authorization on swagger UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # :mag: Description ## Issue References ๐Ÿ”— Support authorization on swagger UI. ## Describe Your Solution ๐Ÿ”ง Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. ## Types of changes :bookmark: - [ ] Bugfix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) ## Test Plan ๐Ÿงช #### Behavior Without This Pull Request :coffin: #### Behavior With This Pull Request :tada: #### Related Unit Tests --- # Checklist ๐Ÿ“ - [x] This patch was not authored or co-authored using [Generative Tooling](https://www.apache.org/legal/generative-tooling.html) **Be nice. Be informative.** Closes #6591 from turboFei/swagger_auth. Closes #6591 28010bd99 [Wang, Fei] Support authorization on swagger UI Authored-by: Wang, Fei Signed-off-by: Wang, Fei --- .../kyuubi/server/api/v1/KyuubiOpenApiResource.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/v1/KyuubiOpenApiResource.scala b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/v1/KyuubiOpenApiResource.scala index a8d350114..37025eace 100644 --- a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/v1/KyuubiOpenApiResource.scala +++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/v1/KyuubiOpenApiResource.scala @@ -28,8 +28,9 @@ import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder import io.swagger.v3.jaxrs2.integration.resources.BaseOpenApiResource import io.swagger.v3.oas.annotations.Operation import io.swagger.v3.oas.integration.api.OpenApiContext -import io.swagger.v3.oas.models.OpenAPI +import io.swagger.v3.oas.models.{Components, OpenAPI} import io.swagger.v3.oas.models.info.{Contact, Info, License} +import io.swagger.v3.oas.models.security.{SecurityRequirement, SecurityScheme} import io.swagger.v3.oas.models.servers.Server import io.swagger.v3.oas.models.tags.Tag import org.apache.commons.lang3.StringUtils @@ -99,6 +100,13 @@ class KyuubiOpenApiResource extends BaseOpenApiResource with ApiRequestContext { .url("https://www.apache.org/licenses/LICENSE-2.0.txt"))) .tags(List(new Tag().name("Session"), new Tag().name("Operation")).asJava) .servers(List(new Server().url(apiUrl)).asJava) + .components(Option(openApi.getComponents).getOrElse(new Components()) + .addSecuritySchemes( + "BasicAuth", + new SecurityScheme() + .`type`(SecurityScheme.Type.HTTP) + .scheme("Basic"))) + .addSecurityItem(new SecurityRequirement().addList("BasicAuth")) } }