From 9396091538ea0efc745c89990e5f63f958c20766 Mon Sep 17 00:00:00 2001 From: Anibal Boggio Date: Fri, 11 Sep 2026 13:34:08 -0300 Subject: [PATCH] feat: support withCredentials in Swagger UI --- .../io/javalin/openapi/plugin/swagger/SwaggerHandler.kt | 2 ++ .../io/javalin/openapi/plugin/swagger/SwaggerPlugin.kt | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerHandler.kt b/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerHandler.kt index 3a3a8e0e..7fe78800 100644 --- a/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerHandler.kt +++ b/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerHandler.kt @@ -34,6 +34,7 @@ class SwaggerHandler( private val versions: List, private val swaggerVersion: String, private val validatorUrl: String?, + private val withCredentials: Boolean, private val routingPath: String, private val basePath: String?, private val tagsSorter: String, @@ -117,6 +118,7 @@ class SwaggerHandler( layout: "StandaloneLayout", tagsSorter: $tagsSorter, operationsSorter: $operationsSorter, + withCredentials: $withCredentials, validatorUrl: ${if (validatorUrl != null) "\"$validatorUrl\"" else "null"} }) } diff --git a/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerPlugin.kt b/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerPlugin.kt index f250de66..a7b221db 100644 --- a/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerPlugin.kt +++ b/javalin-plugins/javalin-swagger-plugin/src/main/kotlin/io/javalin/openapi/plugin/swagger/SwaggerPlugin.kt @@ -26,6 +26,8 @@ class SwaggerConfiguration @JvmOverloads constructor( @JvmField var title: String = "OpenApi documentation", /** Specification validator */ @JvmField var validatorUrl: String? = "https://validator.swagger.io/validator", + /** Enables passing credentials, such as cookies, in CORS requests that are sent by the browser. */ + @JvmField var withCredentials: Boolean = false, /** Tags sorter algorithm expression. */ @JvmField var tagsSorter: String = "'alpha'", /** Operations sorter algorithm expression. */ @@ -64,6 +66,10 @@ class SwaggerConfiguration @JvmOverloads constructor( /** Set specification validator URL */ fun withValidatorUrl(url: String?): SwaggerConfiguration = also { validatorUrl = url } + /** Enable passing credentials in CORS requests */ + @JvmOverloads + fun withCredentials(enabled: Boolean = true): SwaggerConfiguration = also { withCredentials = enabled } + /** Set tags sorter algorithm expression */ fun withTagsSorter(sorter: String): SwaggerConfiguration = also { tagsSorter = sorter } @@ -113,6 +119,7 @@ open class SwaggerPlugin @JvmOverloads constructor( }, swaggerVersion = pluginConfig.version, validatorUrl = pluginConfig.validatorUrl, + withCredentials = pluginConfig.withCredentials, routingPath = state.router.contextPath, basePath = pluginConfig.basePath, tagsSorter = pluginConfig.tagsSorter,