Skip to content

Commit 229543d

Browse files
JwtPermissionHandler should return true if no permissions are required (#29)
1 parent 16720d7 commit 229543d

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

router/src/main/kotlin/io/moia/router/PermissionHandler.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ open class JwtPermissionHandler(
5252
) : this(JwtAccessor(request), permissionsClaim, permissionSeparator)
5353

5454
override fun hasAnyRequiredPermission(requiredPermissions: Set<String>): Boolean =
55-
extractPermissions().any { requiredPermissions.contains(it) }
55+
if (requiredPermissions.isEmpty()) true
56+
else extractPermissions().any { requiredPermissions.contains(it) }
5657

5758
internal open fun extractPermissions(): Set<String> =
5859
accessor.extractJwtClaims()

router/src/test/kotlin/io/moia/router/JwtPermissionHandlerTest.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,15 @@ class JwtPermissionHandlerTest {
5151
thenRecognizesRequiredPermissions(handler)
5252
}
5353

54+
@Test
55+
fun `should return true when no permissions are required`() {
56+
val handler = permissionHandler(jwtWithScopeClaimSpace)
57+
58+
val result = handler.hasAnyRequiredPermission(emptySet())
59+
60+
then(result).isTrue()
61+
}
62+
5463
@Test
5564
fun `should work for missing header`() {
5665
val handler = JwtPermissionHandler(JwtAccessor(APIGatewayProxyRequestEvent()))

0 commit comments

Comments
 (0)