From 8496d105c09dd76f506ba581f76dd835ec8ddd4b Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Fri, 21 Jan 2022 03:06:51 +0300 Subject: [PATCH] fix auth generation and blocked https->http requests --- src/main/resources/reference.conf | 1 + src/main/scala/me/arcanis/ffxivbis/http/Swagger.scala | 5 ++++- .../me/arcanis/ffxivbis/http/api/v1/BiSEndpoint.scala | 6 +++--- .../me/arcanis/ffxivbis/http/api/v1/LootEndpoint.scala | 6 +++--- .../me/arcanis/ffxivbis/http/api/v1/PartyEndpoint.scala | 4 ++-- .../me/arcanis/ffxivbis/http/api/v1/PlayerEndpoint.scala | 6 +++--- .../me/arcanis/ffxivbis/http/api/v1/UserEndpoint.scala | 8 ++++---- 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/resources/reference.conf b/src/main/resources/reference.conf index 09ec40b..ed57c2f 100644 --- a/src/main/resources/reference.conf +++ b/src/main/resources/reference.conf @@ -50,6 +50,7 @@ me.arcanis.ffxivbis { #hostname = "127.0.0.1:8000" # enable head requests for GET requests enable-head-requests = yes + schemes = ["http"] authorization-cache { # maximum amount of cached logins diff --git a/src/main/scala/me/arcanis/ffxivbis/http/Swagger.scala b/src/main/scala/me/arcanis/ffxivbis/http/Swagger.scala index 5cc4f4b..a7c60fb 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/Swagger.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/Swagger.scala @@ -14,6 +14,7 @@ import com.typesafe.config.Config import io.swagger.v3.oas.models.security.SecurityScheme import scala.io.Source +import scala.jdk.CollectionConverters._ class Swagger(config: Config) extends SwaggerHttpService { @@ -38,12 +39,14 @@ class Swagger(config: Config) extends SwaggerHttpService { if (config.hasPath("me.arcanis.ffxivbis.web.hostname")) config.getString("me.arcanis.ffxivbis.web.hostname") else s"${config.getString("me.arcanis.ffxivbis.web.host")}:${config.getInt("me.arcanis.ffxivbis.web.port")}" + override val schemes: List[String] = config.getStringList("me.arcanis.ffxivbis.web.schemes").asScala.toList + private val basicAuth = new SecurityScheme() .description("basic http auth") .`type`(SecurityScheme.Type.HTTP) .in(SecurityScheme.In.HEADER) .scheme("basic") - override val securitySchemes: Map[String, SecurityScheme] = Map("auth" -> basicAuth) + override val securitySchemes: Map[String, SecurityScheme] = Map("basic" -> basicAuth) override val unwantedDefinitions: Seq[String] = Seq("Function1", "Function1RequestContextFutureRouteResult") diff --git a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/BiSEndpoint.scala b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/BiSEndpoint.scala index d6126e4..e2f6f81 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/BiSEndpoint.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/BiSEndpoint.scala @@ -79,7 +79,7 @@ class BiSEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("post"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("post"))), tags = Array("best in slot"), ) def createBiS: Route = @@ -140,7 +140,7 @@ class BiSEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("best in slot"), ) def getBiS: Route = @@ -197,7 +197,7 @@ class BiSEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("post"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("post"))), tags = Array("best in slot"), ) def modifyBiS: Route = diff --git a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/LootEndpoint.scala b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/LootEndpoint.scala index 791105b..c1bdbce 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/LootEndpoint.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/LootEndpoint.scala @@ -81,7 +81,7 @@ class LootEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("loot"), ) def getLoot: Route = @@ -137,7 +137,7 @@ class LootEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("post"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("post"))), tags = Array("loot"), ) def modifyLoot: Route = @@ -202,7 +202,7 @@ class LootEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("loot"), ) def suggestLoot: Route = diff --git a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PartyEndpoint.scala b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PartyEndpoint.scala index b973044..6f7f86f 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PartyEndpoint.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PartyEndpoint.scala @@ -73,7 +73,7 @@ class PartyEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("party"), ) def getPartyDescription: Route = @@ -126,7 +126,7 @@ class PartyEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("post"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("post"))), tags = Array("party"), ) def modifyPartyDescription: Route = diff --git a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PlayerEndpoint.scala b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PlayerEndpoint.scala index ae59d83..b2d37d0 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PlayerEndpoint.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/PlayerEndpoint.scala @@ -85,7 +85,7 @@ class PlayerEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("party"), ) def getParty: Route = @@ -146,7 +146,7 @@ class PlayerEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("party"), ) def getPartyStats: Route = @@ -202,7 +202,7 @@ class PlayerEndpoint( content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("post"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("post"))), tags = Array("party"), ) def modifyParty: Route = diff --git a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/UserEndpoint.scala b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/UserEndpoint.scala index 27cadbb..4aee9db 100644 --- a/src/main/scala/me/arcanis/ffxivbis/http/api/v1/UserEndpoint.scala +++ b/src/main/scala/me/arcanis/ffxivbis/http/api/v1/UserEndpoint.scala @@ -126,7 +126,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("admin"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("admin"))), tags = Array("users"), ) def createUser: Route = @@ -172,7 +172,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("admin"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("admin"))), tags = Array("users"), ) def deleteUser: Route = @@ -223,7 +223,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("get"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("get"))), tags = Array("users"), ) def getUsers: Route = @@ -270,7 +270,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A content = Array(new Content(schema = new Schema(implementation = classOf[ErrorModel]))) ), ), - security = Array(new SecurityRequirement(name = "basic auth", scopes = Array("admin"))), + security = Array(new SecurityRequirement(name = "basic", scopes = Array("admin"))), tags = Array("users"), ) def getUsersCurrent: Route =