/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq; import static org.junit.Assert.assertTrue; import org.junit.Test; public class AuthorizationTest extends AbstractAuthorizationTest { private static final int RECEIVE_TIMEOUT = 1000; String configurationSeed = "authorizationTest"; @Test public void testMod() throws Exception { final String brokerConfig = configurationSeed + "-auth-broker"; applyNewConfig(brokerConfig, configurationSeed + "-users"); startBroker(brokerConfig); assertTrue("broker alive", brokerService.isStarted()); assertAllowed("user", "USERS.A"); assertDenied("user", "GUESTS.A"); assertDenied("guest", "GUESTS.A"); assertDeniedTemp("guest"); applyNewConfig(brokerConfig, configurationSeed + "-users-guests", SLEEP); assertAllowed("user", "USERS.A"); assertAllowed("guest", "GUESTS.A"); assertDenied("user", "GUESTS.A"); assertAllowedTemp("guest"); } @Test public void testModRm() throws Exception { final String brokerConfig = configurationSeed + "-auth-rm-broker"; applyNewConfig(brokerConfig, configurationSeed + "-users-guests"); startBroker(brokerConfig); assertTrue("broker alive", brokerService.isStarted()); assertAllowed("user", "USERS.A"); assertAllowed("guest", "GUESTS.A"); assertDenied("user", "GUESTS.A"); assertAllowedTemp("guest"); applyNewConfig(brokerConfig, configurationSeed + "-users", SLEEP); assertAllowed("user", "USERS.A"); assertDenied("user", "GUESTS.A"); assertDeniedTemp("guest"); } @Test public void testModAddWrite() throws Exception { final String brokerConfig = configurationSeed + "-auth-rm-broker"; applyNewConfig(brokerConfig, configurationSeed + "-users"); startBroker(brokerConfig); assertTrue("broker alive", brokerService.isStarted()); assertAllowedWrite("user", "USERS.A"); assertDeniedWrite("guest", "USERS.A"); applyNewConfig(brokerConfig, configurationSeed + "-users-add-write-guest", SLEEP); assertAllowedWrite("user", "USERS.A"); assertAllowedWrite("guest", "USERS.A"); } @Test public void testModWithGroupClass() throws Exception { final String brokerConfig = configurationSeed + "-auth-add-guest-broker"; applyNewConfig(brokerConfig, configurationSeed + "-users"); startBroker(brokerConfig); assertTrue("broker alive", brokerService.isStarted()); assertAllowed("user", "USERS.A"); applyNewConfig(brokerConfig, configurationSeed + "-users-dud-groupClass", SLEEP); assertDenied("user", "USERS.A"); applyNewConfig(brokerConfig, configurationSeed + "-users", SLEEP); assertAllowed("user", "USERS.A"); } @Test public void testWildcard() throws Exception { final String brokerConfig = configurationSeed + "-auth-broker"; applyNewConfig(brokerConfig, configurationSeed + "-wildcard-users-guests"); startBroker(brokerConfig); assertTrue("broker alive", brokerService.isStarted()); final String ALL_USERS = "ALL.USERS.>"; final String ALL_GUESTS = "ALL.GUESTS.>"; assertAllowed("user", ALL_USERS); assertAllowed("guest", ALL_GUESTS); assertDenied("user", ALL_USERS + "," + ALL_GUESTS); assertDenied("guest", ALL_GUESTS + "," + ALL_USERS); final String ALL_PREFIX = "ALL.>"; assertDenied("user", ALL_PREFIX); assertDenied("guest", ALL_PREFIX); assertAllowed("user", "ALL.USERS.A"); assertAllowed("user", "ALL.USERS.A,ALL.USERS.B"); assertAllowed("guest", "ALL.GUESTS.A"); assertAllowed("guest", "ALL.GUESTS.A,ALL.GUESTS.B"); assertDenied("user", "USERS.>"); assertDenied("guest", "GUESTS.>"); assertAllowedTemp("guest"); } }