From 8a60f9b98bec8d0ec8809a81f02c182f13083caf Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Tue, 15 Jul 2025 09:28:55 +0300 Subject: [PATCH] Fix getAllAuthorities (#2548) Signed-off-by: Avgustin Marinov --- .../im/authentication/SpPermission.java | 2 +- .../im/authentication/SpPermissionTest.java | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 hawkbit-security-core/src/test/java/org/eclipse/hawkbit/im/authentication/SpPermissionTest.java diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/im/authentication/SpPermission.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/im/authentication/SpPermission.java index 0d9730128..7fe5b5bba 100644 --- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/im/authentication/SpPermission.java +++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/im/authentication/SpPermission.java @@ -163,7 +163,7 @@ public final class SpPermission { final Field[] declaredFields = SpPermission.class.getDeclaredFields(); for (final Field field : declaredFields) { if (Modifier.isPublic(field.getModifiers()) && Modifier.isStatic(field.getModifiers()) && Modifier.isFinal(field.getModifiers()) && - String.class.equals(field.getType())) { + String.class.equals(field.getType()) && !field.getName().endsWith("_HIERARCHY")) { try { final String role = (String) field.get(null); allPermissions.add(role); diff --git a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/im/authentication/SpPermissionTest.java b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/im/authentication/SpPermissionTest.java new file mode 100644 index 000000000..eacceb249 --- /dev/null +++ b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/im/authentication/SpPermissionTest.java @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2025 Contributors to the Eclipse Foundation + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.hawkbit.im.authentication; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Collection; + +import org.junit.jupiter.api.Test; + +/** + * Test {@link SpPermission}. + *

+ * Feature: Unit Tests - Security
+ * Story: Permission Test + */ +final class SpPermissionTest { + + /** + * Double-checks that all permissions doesn't contain any hierarchies. + */ + @Test + void allAuthoritiesShouldNotContainHierarchies() { + final Collection allAuthorities = SpPermission.getAllAuthorities(); + assertThat(allAuthorities).isNotEmpty().as("Are not hierarchies").allMatch(permission -> !permission.contains("\n")); + } +} \ No newline at end of file