This is an automated email from the ASF dual-hosted git repository.
brusdev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 7423a9e7cd ARTEMIS-6013 add unit tests for SecurityManagerUtil
7423a9e7cd is described below
commit 7423a9e7cd2326a47fdc48fe09ae207c829218ce
Author: Justin Bertram <[email protected]>
AuthorDate: Fri Apr 17 19:46:22 2026 -0500
ARTEMIS-6013 add unit tests for SecurityManagerUtil
SecurityManagerUtil contains important logic related to security, but it
does not have any corresponding unit tests. Each method should have a
handful of unit tests to exercise its various options and use-cases.
This will help narrow down any future bugs and mitigate against
regressions for use-cases not covered in the integration tests.
---
.../artemis/utils/SecurityManagerUtilTest.java | 485 ++++++++++++++++++++-
1 file changed, 482 insertions(+), 3 deletions(-)
diff --git
a/artemis-server/src/test/java/org/apache/activemq/artemis/utils/SecurityManagerUtilTest.java
b/artemis-server/src/test/java/org/apache/activemq/artemis/utils/SecurityManagerUtilTest.java
index 525acceada..05d4585316 100644
---
a/artemis-server/src/test/java/org/apache/activemq/artemis/utils/SecurityManagerUtilTest.java
+++
b/artemis-server/src/test/java/org/apache/activemq/artemis/utils/SecurityManagerUtilTest.java
@@ -17,16 +17,24 @@
package org.apache.activemq.artemis.utils;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
import javax.security.auth.Subject;
import java.security.Principal;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.activemq.artemis.core.security.CheckType;
+import org.apache.activemq.artemis.core.security.Role;
import org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal;
import org.apache.activemq.artemis.spi.core.security.jaas.UserPrincipal;
import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
public class SecurityManagerUtilTest {
@Test
@@ -53,4 +61,475 @@ public class SecurityManagerUtilTest {
subject.getPrincipals().add(new UserFromOtherDomainPrincipal());
assertNull(SecurityManagerUtil.getUserFromSubject(subject,
UserPrincipal.class));
}
+
+ @Test
+ public void testAuthorizeWithNullSubject() {
+ Set<Role> roles = Set.of(new Role("user", true, true, true, true, true,
true, true, true, true, true, true, true));
+
+ assertFalse(SecurityManagerUtil.authorize(null, roles, CheckType.SEND,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithEmptySubject() {
+ Set<Role> roles = Set.of(new Role("user", true, true, true, true, true,
true, true, true, true, true, true, true));
+
+ assertFalse(SecurityManagerUtil.authorize(new Subject(), roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithEmptyRoles() {
+ Subject subject = getSubject("user");
+
+ assertFalse(SecurityManagerUtil.authorize(subject, new HashSet<>(),
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithMatchingRole() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.SEND,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithNonMatchingRole() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("admin", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithRoleWithoutPermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithMultipleRolesOneMatching() {
+ Subject subject = getSubject("user", "guest");
+
+ Set<Role> roles = Set.of(new Role("admin", true, false, false, false,
false, false, false, false, false, false, false, false),
+ new Role("user", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.SEND,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithMultipleRolesNoneMatching() {
+ Subject subject = getSubject("user", "guest");
+
+ Set<Role> roles = Set.of(new Role("admin", true, false, false, false,
false, false, false, false, false, false, false, false),
+ new Role("superuser", true, false, false,
false, false, false, false, false, false, false, false, false));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithDifferentCheckTypes() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, true, false, false,
false, false, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CONSUME, RolePrincipal.class));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithManagePermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, true, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.MANAGE, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithBrowsePermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, true, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.BROWSE, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithCreateAddressPermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, false, true, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CREATE_ADDRESS, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithDeleteAddressPermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, false, false, true, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.DELETE_ADDRESS, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithViewPermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, false, false, false, true, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.VIEW,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithEditPermission() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, false, false,
false, false, false, false, false, false, false, true));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.EDIT,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithMultiplePermissionsOnRole() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", true, true, true, true, false,
false, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.SEND,
RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CONSUME, RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CREATE_DURABLE_QUEUE, RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.DELETE_DURABLE_QUEUE, RolePrincipal.class));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.MANAGE, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithSubjectHavingUserAndRolePrincipals() {
+ Subject subject = new Subject();
+ subject.getPrincipals().add(new UserPrincipal("john"));
+ subject.getPrincipals().add(new RolePrincipal("admin"));
+
+ Set<Role> roles = Set.of(new Role("admin", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles, CheckType.SEND,
RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithSubjectHavingOnlyUserPrincipal() {
+ Subject subject = new Subject();
+ subject.getPrincipals().add(new UserPrincipal("admin"));
+
+ Set<Role> roles = Set.of(new Role("admin", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ }
+
+ @Test
+ public void testAuthorizeWithQueuePermissions() {
+ Subject subject = getSubject("user");
+
+ Set<Role> roles = Set.of(new Role("user", false, false, true, true,
true, true, false, false, false, false, false, false));
+
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CREATE_DURABLE_QUEUE, RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.DELETE_DURABLE_QUEUE, RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.CREATE_NON_DURABLE_QUEUE, RolePrincipal.class));
+ assertTrue(SecurityManagerUtil.authorize(subject, roles,
CheckType.DELETE_NON_DURABLE_QUEUE, RolePrincipal.class));
+
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.SEND, RolePrincipal.class));
+ assertFalse(SecurityManagerUtil.authorize(subject, roles,
CheckType.CONSUME, RolePrincipal.class));
+ }
+
+ private Subject getSubject(String... roles) {
+ Subject subject = new Subject();
+ for (String role : roles) {
+ subject.getPrincipals().add(new RolePrincipal(role));
+ }
+ return subject;
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithStringConstructor() throws
Exception {
+ Object principal = SecurityManagerUtil.createGroupPrincipal("testRole",
RolePrincipal.class);
+
+ assertNotNull(principal);
+ assertTrue(principal instanceof RolePrincipal);
+ assertEquals("testRole", ((RolePrincipal) principal).getName());
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithUserPrincipal() throws Exception {
+ Object principal = SecurityManagerUtil.createGroupPrincipal("testUser",
UserPrincipal.class);
+
+ assertNotNull(principal);
+ assertTrue(principal instanceof UserPrincipal);
+ assertEquals("testUser", ((UserPrincipal) principal).getName());
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithDifferentNames() throws Exception {
+ Object principal1 = SecurityManagerUtil.createGroupPrincipal("role1",
RolePrincipal.class);
+ Object principal2 = SecurityManagerUtil.createGroupPrincipal("role2",
RolePrincipal.class);
+
+ assertNotNull(principal1);
+ assertNotNull(principal2);
+ assertEquals("role1", ((RolePrincipal) principal1).getName());
+ assertEquals("role2", ((RolePrincipal) principal2).getName());
+
+ assertFalse(principal1.equals(principal2));
+ }
+
+ // Class with String constructor
+ public static class PrincipalWithStringConstructor implements Principal {
+ private final String name;
+
+ public PrincipalWithStringConstructor(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+ }
+
+ // Class with no-arg constructor and setName method
+ public static class PrincipalWithNoArgeConstructorAndSetName implements
Principal {
+ private String name;
+
+ public PrincipalWithNoArgeConstructorAndSetName() {
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+ }
+
+ // Class that can't be instantiated (no suitable constructor or setName)
+ public static class PrincipalNoValidInstantiation implements Principal {
+ private final String name;
+
+ private PrincipalNoValidInstantiation(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithCustomClassStringConstructor()
throws Exception {
+ Object principal =
SecurityManagerUtil.createGroupPrincipal("customRole",
PrincipalWithStringConstructor.class);
+
+ assertNotNull(principal);
+ assertTrue(principal instanceof PrincipalWithStringConstructor);
+ assertEquals("customRole", ((PrincipalWithStringConstructor)
principal).getName());
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithSetNameMethod() throws Exception {
+ Object principal =
SecurityManagerUtil.createGroupPrincipal("setNameRole",
PrincipalWithNoArgeConstructorAndSetName.class);
+
+ assertNotNull(principal);
+ assertTrue(principal instanceof
PrincipalWithNoArgeConstructorAndSetName);
+ assertEquals("setNameRole", ((PrincipalWithNoArgeConstructorAndSetName)
principal).getName());
+ }
+
+ @Test
+ public void testCreateGroupPrincipalWithNoValidInstantiation() {
+ assertThrows(NoSuchMethodException.class, () -> {
+ SecurityManagerUtil.createGroupPrincipal("invalidRole",
PrincipalNoValidInstantiation.class);
+ });
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithEmptyRoles() {
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, new HashSet<Role>(),
RolePrincipal.class);
+
+ assertNotNull(result);
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithNoMatchingPermission() {
+ Set<Role> roles = Set.of(
+ new Role("user", false, true, false, false, false, false, false,
false, false, false, false, false),
+ new Role("admin", false, false, true, false, false, false, false,
false, false, false, false, false)
+ );
+
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+
+ assertNotNull(result);
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithSingleMatchingRole() {
+ Set<Role> roles = Set.of(new Role("sender", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ RolePrincipal principal = result.iterator().next();
+ assertEquals("sender", principal.getName());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithMultipleMatchingRoles() {
+ Set<Role> roles = Set.of(
+ new Role("user", true, false, false, false, false, false, false,
false, false, false, false, false),
+ new Role("admin", true, false, false, false, false, false, false,
false, false, false, false, false),
+ new Role("guest", false, true, false, false, false, false, false,
false, false, false, false, false)
+ );
+
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+
+ assertNotNull(result);
+ assertEquals(2, result.size());
+
+ Set<String> names = new HashSet<>();
+ for (RolePrincipal principal : result) {
+ names.add(principal.getName());
+ }
+ assertTrue(names.contains("user"));
+ assertTrue(names.contains("admin"));
+
+ assertFalse(names.contains("guest"));
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithAllMatchingRoles() {
+ Set<Role> roles = Set.of(
+ new Role("role1", true, false, false, false, false, false, false,
false, false, false, false, false),
+ new Role("role2", true, false, false, false, false, false, false,
false, false, false, false, false),
+ new Role("role3", true, false, false, false, false, false, false,
false, false, false, false, false)
+ );
+
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+
+ assertNotNull(result);
+ assertEquals(3, result.size());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithDifferentCheckTypes() {
+ Set<Role> roles = Set.of(
+ new Role("sender", true, false, false, false, false, false, false,
false, false, false, false, false),
+ new Role("consumer", false, true, false, false, false, false, false,
false, false, false, false, false),
+ new Role("manager", false, false, false, false, false, false, true,
false, false, false, false, false)
+ );
+
+ Set<RolePrincipal> sendResult =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+ assertEquals(1, sendResult.size());
+ assertEquals("sender", sendResult.iterator().next().getName());
+
+ Set<RolePrincipal> consumeResult =
SecurityManagerUtil.getPrincipalsInRole(CheckType.CONSUME, roles,
RolePrincipal.class);
+ assertEquals(1, consumeResult.size());
+ assertEquals("consumer", consumeResult.iterator().next().getName());
+
+ Set<RolePrincipal> manageResult =
SecurityManagerUtil.getPrincipalsInRole(CheckType.MANAGE, roles,
RolePrincipal.class);
+ assertEquals(1, manageResult.size());
+ assertEquals("manager", manageResult.iterator().next().getName());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithAllCheckTypes() {
+ Set<Role> roles = Set.of(new Role("admin", true, true, true, true, true,
true, true, true, true, true, true, true));
+
+ assertEquals(1, SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND,
roles, RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CONSUME, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CREATE_DURABLE_QUEUE, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.DELETE_DURABLE_QUEUE, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CREATE_NON_DURABLE_QUEUE,
roles, RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.DELETE_NON_DURABLE_QUEUE,
roles, RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.MANAGE, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.BROWSE, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CREATE_ADDRESS, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.DELETE_ADDRESS, roles,
RolePrincipal.class).size());
+ assertEquals(1, SecurityManagerUtil.getPrincipalsInRole(CheckType.VIEW,
roles, RolePrincipal.class).size());
+ assertEquals(1, SecurityManagerUtil.getPrincipalsInRole(CheckType.EDIT,
roles, RolePrincipal.class).size());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithUserPrincipalClass() {
+ Set<Role> roles = Set.of(new Role("user", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ Set result = SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND,
roles, UserPrincipal.class);
+
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ Object principal = result.iterator().next();
+ assertTrue(principal instanceof UserPrincipal);
+ assertEquals("user", ((UserPrincipal) principal).getName());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithCustomPrincipalClass() {
+ Set<Role> roles = Set.of(new Role("custom", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ Set result = SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND,
roles, PrincipalWithStringConstructor.class);
+
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ Object principal = result.iterator().next();
+ assertTrue(principal instanceof PrincipalWithStringConstructor);
+ assertEquals("custom", ((PrincipalWithStringConstructor)
principal).getName());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithExceptionHandling() {
+ // Using a class that can't be instantiated should cause
createGroupPrincipal to throw
+ // The method should catch the exception and continue, resulting in an
empty set
+ Set<Role> roles = Set.of(new Role("invalid", true, false, false, false,
false, false, false, false, false, false, false, false));
+
+ Set result = SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND,
roles, PrincipalNoValidInstantiation.class);
+
+ // The exception should be caught and logged, returning empty set
+ assertNotNull(result);
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void testGetPrincipalsInRoleWithMultiplePermissionsOnRole() {
+ Set<Role> roles = Set.of(new Role("poweruser", true, true, true, false,
false, false, false, false, false, false, false, false));
+
+ assertEquals(1, SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND,
roles, RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CONSUME, roles,
RolePrincipal.class).size());
+ assertEquals(1,
SecurityManagerUtil.getPrincipalsInRole(CheckType.CREATE_DURABLE_QUEUE, roles,
RolePrincipal.class).size());
+
+ assertTrue(SecurityManagerUtil.getPrincipalsInRole(CheckType.MANAGE,
roles, RolePrincipal.class).isEmpty());
+ }
+
+ @Test
+ public void testGetPrincipalsInRolePreservesRoleNames() {
+ Set<Role> roles = Set.of(
+ new Role("role-with-dashes", true, false, false, false, false, false,
false, false, false, false, false, false),
+ new Role("role_with_underscores", true, false, false, false, false,
false, false, false, false, false, false, false),
+ new Role("Role.With.Dots", true, false, false, false, false, false,
false, false, false, false, false, false)
+ );
+
+ Set<RolePrincipal> result =
SecurityManagerUtil.getPrincipalsInRole(CheckType.SEND, roles,
RolePrincipal.class);
+
+ assertEquals(3, result.size());
+ Set<String> names = new HashSet<>();
+ for (RolePrincipal principal : result) {
+ names.add(principal.getName());
+ }
+ assertTrue(names.contains("role-with-dashes"));
+ assertTrue(names.contains("role_with_underscores"));
+ assertTrue(names.contains("Role.With.Dots"));
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]