Search in sources :

Example 1 with RoleInfo

use of org.apache.activemq.artemis.api.core.management.RoleInfo in project activemq-artemis by apache.

the class ActiveMQServerControlTest method testSecuritySettings.

@Test
public void testSecuritySettings() throws Exception {
    ActiveMQServerControl serverControl = createManagementControl();
    String addressMatch = "test.#";
    String exactAddress = "test.whatever";
    assertEquals(1, serverControl.getRoles(addressMatch).length);
    serverControl.addSecuritySettings(addressMatch, "foo", "foo, bar", "foo", "bar", "foo, bar", "", "", "bar", "foo", "foo");
    // Restart the server. Those settings should be persisted
    restartServer();
    serverControl = createManagementControl();
    String rolesAsJSON = serverControl.getRolesAsJSON(exactAddress);
    RoleInfo[] roleInfos = RoleInfo.from(rolesAsJSON);
    assertEquals(2, roleInfos.length);
    RoleInfo fooRole = null;
    RoleInfo barRole = null;
    if (roleInfos[0].getName().equals("foo")) {
        fooRole = roleInfos[0];
        barRole = roleInfos[1];
    } else {
        fooRole = roleInfos[1];
        barRole = roleInfos[0];
    }
    assertTrue(fooRole.isSend());
    assertTrue(fooRole.isConsume());
    assertTrue(fooRole.isCreateDurableQueue());
    assertFalse(fooRole.isDeleteDurableQueue());
    assertTrue(fooRole.isCreateNonDurableQueue());
    assertFalse(fooRole.isDeleteNonDurableQueue());
    assertFalse(fooRole.isManage());
    assertFalse(fooRole.isBrowse());
    assertTrue(fooRole.isCreateAddress());
    assertFalse(barRole.isSend());
    assertTrue(barRole.isConsume());
    assertFalse(barRole.isCreateDurableQueue());
    assertTrue(barRole.isDeleteDurableQueue());
    assertTrue(barRole.isCreateNonDurableQueue());
    assertFalse(barRole.isDeleteNonDurableQueue());
    assertFalse(barRole.isManage());
    assertTrue(barRole.isBrowse());
    assertFalse(barRole.isCreateAddress());
    serverControl.removeSecuritySettings(addressMatch);
    assertEquals(1, serverControl.getRoles(exactAddress).length);
}
Also used : ActiveMQServerControl(org.apache.activemq.artemis.api.core.management.ActiveMQServerControl) RoleInfo(org.apache.activemq.artemis.api.core.management.RoleInfo) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) Test(org.junit.Test)

Example 2 with RoleInfo

use of org.apache.activemq.artemis.api.core.management.RoleInfo in project activemq-artemis by apache.

the class AddressControlTest method testGetRolesAsJSON.

@Test
public void testGetRolesAsJSON() throws Exception {
    SimpleString address = RandomUtil.randomSimpleString();
    SimpleString queue = RandomUtil.randomSimpleString();
    Role role = new Role(RandomUtil.randomString(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean(), RandomUtil.randomBoolean());
    session.createQueue(address, queue, true);
    AddressControl addressControl = createManagementControl(address);
    String jsonString = addressControl.getRolesAsJSON();
    Assert.assertNotNull(jsonString);
    RoleInfo[] roles = RoleInfo.from(jsonString);
    Assert.assertEquals(0, roles.length);
    Set<Role> newRoles = new HashSet<>();
    newRoles.add(role);
    server.getSecurityRepository().addMatch(address.toString(), newRoles);
    jsonString = addressControl.getRolesAsJSON();
    Assert.assertNotNull(jsonString);
    roles = RoleInfo.from(jsonString);
    Assert.assertEquals(1, roles.length);
    RoleInfo r = roles[0];
    Assert.assertEquals(role.getName(), roles[0].getName());
    Assert.assertEquals(role.isSend(), r.isSend());
    Assert.assertEquals(role.isConsume(), r.isConsume());
    Assert.assertEquals(role.isCreateDurableQueue(), r.isCreateDurableQueue());
    Assert.assertEquals(role.isDeleteDurableQueue(), r.isDeleteDurableQueue());
    Assert.assertEquals(role.isCreateNonDurableQueue(), r.isCreateNonDurableQueue());
    Assert.assertEquals(role.isDeleteNonDurableQueue(), r.isDeleteNonDurableQueue());
    Assert.assertEquals(role.isManage(), r.isManage());
    session.deleteQueue(queue);
}
Also used : Role(org.apache.activemq.artemis.core.security.Role) AddressControl(org.apache.activemq.artemis.api.core.management.AddressControl) RoleInfo(org.apache.activemq.artemis.api.core.management.RoleInfo) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) RandomUtil.randomString(org.apache.activemq.artemis.tests.util.RandomUtil.randomString) JsonString(javax.json.JsonString) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

SimpleString (org.apache.activemq.artemis.api.core.SimpleString)2 RoleInfo (org.apache.activemq.artemis.api.core.management.RoleInfo)2 Test (org.junit.Test)2 HashSet (java.util.HashSet)1 JsonString (javax.json.JsonString)1 ActiveMQServerControl (org.apache.activemq.artemis.api.core.management.ActiveMQServerControl)1 AddressControl (org.apache.activemq.artemis.api.core.management.AddressControl)1 Role (org.apache.activemq.artemis.core.security.Role)1 RandomUtil.randomString (org.apache.activemq.artemis.tests.util.RandomUtil.randomString)1