Skip to content

Commit f081f3c

Browse files
committed
feat(authorization): Integrate new authorization with components
Rework the routes defined in component modules to use the new `Authorization` component. Signed-off-by: Oliver Heger <[email protected]>
1 parent ae25433 commit f081f3c

File tree

58 files changed

+341
-453
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+341
-453
lines changed

components/admin-config/backend/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ dependencies {
4242
implementation(libs.exposedCore)
4343
implementation(libs.exposedKotlinDatetime)
4444

45-
routesImplementation(projects.components.authorizationKeycloak.backend)
45+
routesImplementation(projects.components.authorization.backend)
4646
routesImplementation(projects.shared.apiModel)
4747
routesImplementation(projects.shared.ktorUtils)
4848

components/admin-config/backend/src/routes/kotlin/routes/GetConfigByKey.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import io.ktor.server.routing.Route
2828
import org.eclipse.apoapsis.ortserver.components.adminconfig.Config
2929
import org.eclipse.apoapsis.ortserver.components.adminconfig.ConfigKey
3030
import org.eclipse.apoapsis.ortserver.components.adminconfig.ConfigTable
31-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requireAuthenticated
31+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.OrtServerPrincipal.Companion.requirePrincipal
3232
import org.eclipse.apoapsis.ortserver.shared.ktorutils.jsonBody
3333
import org.eclipse.apoapsis.ortserver.shared.ktorutils.requireParameter
3434
import org.eclipse.apoapsis.ortserver.shared.ktorutils.respondError
@@ -68,7 +68,7 @@ internal fun Route.getConfigByKey(db: Database) = get("admin/config/{key}", {
6868
}
6969
}
7070
}) {
71-
requireAuthenticated()
71+
requirePrincipal()
7272

7373
val keyParameter = call.requireParameter("key")
7474

components/admin-config/backend/src/routes/kotlin/routes/InsertOrUpdateConfig.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.adminconfig.routes
2121

22-
import io.github.smiley4.ktoropenapi.post
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.request.receive
2624
import io.ktor.server.response.respond
@@ -29,7 +27,8 @@ import io.ktor.server.routing.Route
2927
import org.eclipse.apoapsis.ortserver.components.adminconfig.Config
3028
import org.eclipse.apoapsis.ortserver.components.adminconfig.ConfigKey
3129
import org.eclipse.apoapsis.ortserver.components.adminconfig.ConfigTable
32-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requireSuperuser
30+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.post
31+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requireSuperuser
3332
import org.eclipse.apoapsis.ortserver.shared.ktorutils.jsonBody
3433
import org.eclipse.apoapsis.ortserver.shared.ktorutils.requireParameter
3534
import org.eclipse.apoapsis.ortserver.shared.ktorutils.respondError
@@ -69,9 +68,7 @@ internal fun Route.setConfigByKey(db: Database) = post("admin/config/{key}", {
6968
description = "The config key is invalid."
7069
}
7170
}
72-
}) {
73-
requireSuperuser()
74-
71+
}, requireSuperuser()) {
7572
val keyParameter = call.requireParameter("key")
7673

7774
val key = runCatching {

components/infrastructure-services/backend/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ dependencies {
4949

5050
implementation(libs.exposedCore)
5151

52-
routesImplementation(projects.components.authorizationKeycloak.backend)
52+
routesImplementation(projects.components.authorization.backend)
5353
routesImplementation(projects.shared.apiMappings)
5454
routesImplementation(projects.shared.ktorUtils)
5555

components/infrastructure-services/backend/src/routes/kotlin/routes/organization/DeleteOrganizationInfrastructureService.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.organization
2121

22-
import io.github.smiley4.ktoropenapi.delete
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.response.respond
2624
import io.ktor.server.routing.Route
2725

28-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.OrganizationPermission
29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
26+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.OrganizationPermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.delete
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3029
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3130
import org.eclipse.apoapsis.ortserver.model.OrganizationId
3231
import org.eclipse.apoapsis.ortserver.shared.ktorutils.requireIdParameter
@@ -53,9 +52,7 @@ internal fun Route.deleteOrganizationInfrastructureService(
5352
description = "Success"
5453
}
5554
}
56-
}) {
57-
requirePermission(OrganizationPermission.WRITE)
58-
55+
}, requirePermission(OrganizationPermission.WRITE)) {
5956
val orgId = call.requireIdParameter("organizationId")
6057
val serviceName = call.requireParameter("serviceName")
6158

components/infrastructure-services/backend/src/routes/kotlin/routes/organization/GetOrganizationInfrastructureService.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.organization
2121

22-
import io.github.smiley4.ktoropenapi.get
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.response.respond
2624
import io.ktor.server.routing.Route
2725

28-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.OrganizationPermission
29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
26+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.OrganizationPermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.get
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3029
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3130
import org.eclipse.apoapsis.ortserver.model.OrganizationId
3231
import org.eclipse.apoapsis.ortserver.shared.apimappings.mapToApi
@@ -67,9 +66,7 @@ internal fun Route.getOrganizationInfrastructureService(
6766
}
6867
}
6968
}
70-
}) {
71-
requirePermission(OrganizationPermission.READ)
72-
69+
}, requirePermission(OrganizationPermission.READ)) {
7370
val organizationId = call.requireIdParameter("organizationId")
7471
val serviceName = call.requireParameter("serviceName")
7572

components/infrastructure-services/backend/src/routes/kotlin/routes/organization/GetOrganizationInfrastructureServices.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.organization
2121

22-
import io.github.smiley4.ktoropenapi.get
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.response.respond
2624
import io.ktor.server.routing.Route
2725

28-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.OrganizationPermission
29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
26+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.OrganizationPermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.get
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3029
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3130
import org.eclipse.apoapsis.ortserver.model.InfrastructureService as ModelInfrastructureService
3231
import org.eclipse.apoapsis.ortserver.model.OrganizationId
@@ -89,9 +88,7 @@ internal fun Route.getOrganizationInfrastructureServices(
8988
}
9089
}
9190
}
92-
}) {
93-
requirePermission(OrganizationPermission.READ)
94-
91+
}, requirePermission(OrganizationPermission.READ)) {
9592
val orgId = call.requireIdParameter("organizationId")
9693
val pagingOptions = call.pagingOptions(SortProperty("name", SortDirection.ASCENDING))
9794

components/infrastructure-services/backend/src/routes/kotlin/routes/organization/PatchOrganizationInfrastructureService.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.organization
2121

22-
import io.github.smiley4.ktoropenapi.patch
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.request.receive
2624
import io.ktor.server.response.respond
2725
import io.ktor.server.routing.Route
2826

29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.OrganizationPermission
30-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.OrganizationPermission
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.patch
29+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3130
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3231
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.PatchInfrastructureService
3332
import org.eclipse.apoapsis.ortserver.model.OrganizationId
@@ -85,9 +84,7 @@ internal fun Route.patchOrganizationInfrastructureService(
8584
}
8685
}
8786
}
88-
}) {
89-
requirePermission(OrganizationPermission.WRITE)
90-
87+
}, requirePermission(OrganizationPermission.WRITE)) {
9188
val organizationId = call.requireIdParameter("organizationId")
9289
val serviceName = call.requireParameter("serviceName")
9390
val updateService = call.receive<PatchInfrastructureService>()

components/infrastructure-services/backend/src/routes/kotlin/routes/organization/PostOrganizationInfrastructureService.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,14 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.organization
2121

22-
import io.github.smiley4.ktoropenapi.post
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.request.receive
2624
import io.ktor.server.response.respond
2725
import io.ktor.server.routing.Route
2826

29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.OrganizationPermission
30-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.OrganizationPermission
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.post
29+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3130
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3231
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.PostInfrastructureService
3332
import org.eclipse.apoapsis.ortserver.model.OrganizationId
@@ -77,9 +76,7 @@ internal fun Route.postOrganizationInfrastructureService(
7776
}
7877
}
7978
}
80-
}) {
81-
requirePermission(OrganizationPermission.WRITE)
82-
79+
}, requirePermission(OrganizationPermission.WRITE)) {
8380
val organizationId = call.requireIdParameter("organizationId")
8481
val createService = call.receive<PostInfrastructureService>()
8582

components/infrastructure-services/backend/src/routes/kotlin/routes/product/DeleteProductInfrastructureService.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919

2020
package org.eclipse.apoapsis.ortserver.components.infrastructureservices.routes.product
2121

22-
import io.github.smiley4.ktoropenapi.delete
23-
2422
import io.ktor.http.HttpStatusCode
2523
import io.ktor.server.response.respond
2624
import io.ktor.server.routing.Route
2725

28-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.permissions.ProductPermission
29-
import org.eclipse.apoapsis.ortserver.components.authorization.keycloak.requirePermission
26+
import org.eclipse.apoapsis.ortserver.components.authorization.rights.ProductPermission
27+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.delete
28+
import org.eclipse.apoapsis.ortserver.components.authorization.routes.requirePermission
3029
import org.eclipse.apoapsis.ortserver.components.infrastructureservices.InfrastructureServiceService
3130
import org.eclipse.apoapsis.ortserver.model.ProductId
3231
import org.eclipse.apoapsis.ortserver.shared.ktorutils.requireIdParameter
@@ -53,9 +52,7 @@ internal fun Route.deleteProductInfrastructureService(
5352
description = "Success"
5453
}
5554
}
56-
}) {
57-
requirePermission(ProductPermission.WRITE)
58-
55+
}, requirePermission(ProductPermission.WRITE)) {
5956
val prodId = call.requireIdParameter("productId")
6057
val serviceName = call.requireParameter("serviceName")
6158

0 commit comments

Comments
 (0)