From eea16475f413da3e3711ef926063dc11da8ee7f0 Mon Sep 17 00:00:00 2001 From: Johannes Lichtenberger Date: Wed, 12 Jul 2023 20:48:46 +0200 Subject: [PATCH] Minor fixes... --- .../src/main/kotlin/org/sirix/rest/Auth.kt | 8 +++++++- .../org/sirix/rest/crud/PermissionCheckingXQuery.kt | 1 + .../main/kotlin/org/sirix/rest/crud/json/JsonGet.kt | 12 ++++++------ .../main/kotlin/org/sirix/rest/crud/json/JsonHead.kt | 2 +- .../org/sirix/rest/crud/json/JsonSerializeHelper.kt | 4 ++-- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/Auth.kt b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/Auth.kt index b0ea594ad..18bf457f9 100644 --- a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/Auth.kt +++ b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/Auth.kt @@ -23,6 +23,12 @@ class Auth(private val keycloak: OAuth2Auth, private val authz: AuthorizationPro suspend fun handle(ctx: RoutingContext): Route { ctx.request().pause() val token = ctx.request().getHeader(HttpHeaders.AUTHORIZATION.toString()) + + if (token == null) { + ctx.fail(HttpResponseStatus.UNAUTHORIZED.code()) + return ctx.currentRoute() + } + val credentials = TokenCredentials(token.substring(7)) val user = keycloak.authenticate(credentials).await() val database = ctx.pathParam("database") @@ -38,7 +44,7 @@ class Auth(private val keycloak: OAuth2Auth, private val authz: AuthorizationPro if (!isAuthorized && !RoleBasedAuthorization.create(role.keycloakRole()).match(user)) { ctx.fail(HttpResponseStatus.UNAUTHORIZED.code()) - ctx.response().end() + return ctx.currentRoute() } ctx.put("user", user) diff --git a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/PermissionCheckingXQuery.kt b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/PermissionCheckingXQuery.kt index 6147c1967..9171cff3d 100644 --- a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/PermissionCheckingXQuery.kt +++ b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/PermissionCheckingXQuery.kt @@ -24,6 +24,7 @@ import java.io.PrintWriter /** * @author Johannes Lichtenberger */ +@Suppress("unused") class PermissionCheckingXQuery { private val module: Module private var isPrettyPrint: Boolean = false diff --git a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonGet.kt b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonGet.kt index 22c6490c0..8e0b038b6 100644 --- a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonGet.kt +++ b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonGet.kt @@ -63,12 +63,7 @@ class JsonGet(private val location: Path, private val keycloak: OAuth2Auth, priv val manager = database.beginResourceSession(resource) manager.use { - body = if (query != null && query.isNotEmpty()) { - queryResource( - databaseName, database, revision, revisionTimestamp, manager, ctx, nodeId, query, - vertxContext, user, jsonBody - ) - } else { + body = if (query.isNullOrEmpty()) { val revisions: IntArray = Revisions.getRevisionsToSerialize( startRevision, endRevision, startRevisionTimestamp, @@ -76,6 +71,11 @@ class JsonGet(private val location: Path, private val keycloak: OAuth2Auth, priv ) serializeResource(manager, revisions, nodeId?.toLongOrNull(), ctx, vertxContext) + } else { + queryResource( + databaseName, database, revision, revisionTimestamp, manager, ctx, nodeId, query, + vertxContext, user, jsonBody + ) } } } diff --git a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonHead.kt b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonHead.kt index 81dbade1b..d2648bf07 100644 --- a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonHead.kt +++ b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonHead.kt @@ -49,7 +49,7 @@ class JsonHead(private val location: Path) { rtx.use { if (nodeId != null) { if (!rtx.moveTo(nodeId.toLong())) { - throw IllegalStateException("Node with ID ${nodeId} doesn't exist.") + throw IllegalStateException("Node with ID $nodeId doesn't exist.") } } else if (rtx.isDocumentRoot) { rtx.moveToFirstChild() diff --git a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonSerializeHelper.kt b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonSerializeHelper.kt index 69037ea06..2d398070a 100644 --- a/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonSerializeHelper.kt +++ b/bundles/sirix-rest-api/src/main/kotlin/org/sirix/rest/crud/json/JsonSerializeHelper.kt @@ -44,10 +44,10 @@ class JsonSerializeHelper { rtx.use { val hash = if (nodeId == null) { - rtx.moveToFirstChild(); + rtx.moveToFirstChild() rtx.hash } else { - rtx.moveTo(nodeId); + rtx.moveTo(nodeId) rtx.hash }