public void testSecuritySettings() throws Exception { HornetQServerControl serverControl = createManagementControl(); String addressMatch = "test.#"; String exactAddress = "test.whatever"; assertEquals(0, serverControl.getRoles(addressMatch).length); serverControl.addSecuritySettings( addressMatch, "foo", "foo, bar", "foo", "bar", "foo, bar", "", ""); // 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(barRole.isSend()); assertTrue(barRole.isConsume()); assertFalse(barRole.isCreateDurableQueue()); assertTrue(barRole.isDeleteDurableQueue()); assertTrue(barRole.isCreateNonDurableQueue()); assertFalse(barRole.isDeleteNonDurableQueue()); assertFalse(barRole.isManage()); serverControl.removeSecuritySettings(addressMatch); assertEquals(0, serverControl.getRoles(exactAddress).length); }
@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()); 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<Role>(); 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); }