4 Commits

10 changed files with 26 additions and 22 deletions

View File

@ -124,7 +124,7 @@
password: passwordInput.val(),
permission: "admin",
}),
type: "PUT",
type: "POST",
contentType: "application/json",
dataType: "json",
success: function (data) {

View File

@ -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

View File

@ -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,13 +39,15 @@ 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")
Seq("Function1", "Function1RequestContextFutureRouteResult", "SeqLootModel", "SeqPieceModel")
}

View File

@ -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 =

View File

@ -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 =

View File

@ -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 =

View File

@ -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 =

View File

@ -38,7 +38,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A
def routes: Route = createParty ~ createUser ~ deleteUser ~ getUsers ~ getUsersCurrent
@PUT
@POST
@Path("party")
@Consumes(value = Array("application/json"))
@Operation(
@ -76,7 +76,7 @@ class UserEndpoint(override val storage: ActorRef[Message], override val auth: A
def createParty: Route =
path("party") {
extractExecutionContext { implicit executionContext =>
put {
post {
entity(as[UserModel]) { user =>
onSuccess(newPartyId) { partyId =>
val admin = user.toUser.copy(partyId = partyId, permission = Permission.admin)
@ -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 =

View File

@ -50,7 +50,7 @@ class UserEndpointTest extends AnyWordSpecLike with Matchers with ScalatestRoute
val uri = Uri(s"/party")
val entity = UserModel.fromUser(Fixtures.userAdmin).copy(password = Fixtures.userPassword)
Put(uri, entity) ~> route ~> check {
Post(uri, entity) ~> route ~> check {
status shouldEqual StatusCodes.OK
partyId = responseAs[PartyIdModel].partyId
}

View File

@ -1 +1 @@
version := "0.13.0"
version := "0.13.2"