You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2015/09/21 15:49:09 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-5938 - remove unnecessary topic cast - breaks auth scenario. Fix and test

Repository: activemq
Updated Branches:
  refs/heads/master e9aedc801 -> cc9b9b084


https://issues.apache.org/jira/browse/AMQ-5938 - remove unnecessary topic cast - breaks auth scenario. Fix and test


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/cc9b9b08
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/cc9b9b08
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/cc9b9b08

Branch: refs/heads/master
Commit: cc9b9b0843d7e404bdeca1a1dd09d9a9e958f967
Parents: e9aedc8
Author: gtully <ga...@gmail.com>
Authored: Mon Sep 21 14:48:44 2015 +0100
Committer: gtully <ga...@gmail.com>
Committed: Mon Sep 21 14:48:44 2015 +0100

----------------------------------------------------------------------
 .../broker/jmx/ManagedRegionBroker.java         |  4 +--
 ...ableSubscriptionOfflineBrowseRemoveTest.java | 33 ++++++++++++++++++++
 .../DurableSubscriptionOfflineTestBase.java     |  5 +++
 3 files changed, 40 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/cc9b9b08/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
index 854f5e0..601fd15 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
@@ -565,7 +565,7 @@ public class ManagedRegionBroker extends RegionBroker {
     public void remove(SubscriptionView view, String messageId)  throws Exception {
         ActiveMQDestination destination = getTopicDestination(view);
         if (destination != null) {
-            final Topic topic = (Topic) getTopicRegion().getDestinationMap().get(destination);
+            final Destination topic = getTopicRegion().getDestinationMap().get(destination);
             final MessageAck messageAck = new MessageAck();
             messageAck.setMessageID(new MessageId(messageId));
             messageAck.setDestination(destination);
@@ -588,7 +588,7 @@ public class ManagedRegionBroker extends RegionBroker {
     protected Message[] getSubscriberMessages(SubscriptionView view) {
         ActiveMQDestination destination = getTopicDestination(view);
         if (destination != null) {
-            Topic topic = (Topic) getTopicRegion().getDestinationMap().get(destination);
+            Destination topic = getTopicRegion().getDestinationMap().get(destination);
             return topic.browse();
 
         } else {

http://git-wip-us.apache.org/repos/asf/activemq/blob/cc9b9b08/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineBrowseRemoveTest.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineBrowseRemoveTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineBrowseRemoveTest.java
index 0532ede..7c747b6 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineBrowseRemoveTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineBrowseRemoveTest.java
@@ -29,8 +29,15 @@ import javax.management.ObjectName;
 import javax.management.openmbean.CompositeData;
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.TestSupport;
+import org.apache.activemq.broker.BrokerPlugin;
 import org.apache.activemq.broker.BrokerService;
 import org.apache.activemq.broker.jmx.DurableSubscriptionViewMBean;
+import org.apache.activemq.filter.DestinationMapEntry;
+import org.apache.activemq.security.AuthenticationUser;
+import org.apache.activemq.security.AuthorizationEntry;
+import org.apache.activemq.security.AuthorizationPlugin;
+import org.apache.activemq.security.DefaultAuthorizationMap;
+import org.apache.activemq.security.SimpleAuthenticationPlugin;
 import org.apache.activemq.store.PersistenceAdapter;
 import org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
 import org.junit.Test;
@@ -48,6 +55,7 @@ public class DurableSubscriptionOfflineBrowseRemoveTest extends DurableSubscript
 
     private static final Logger LOG = LoggerFactory.getLogger(DurableSubscriptionOfflineBrowseRemoveTest.class);
 
+    public static final String IDENTITY = "milly";
     public boolean keepDurableSubsActive;
 
     @Parameterized.Parameters(name = "PA-{0}.KeepSubsActive-{1}")
@@ -70,6 +78,29 @@ public class DurableSubscriptionOfflineBrowseRemoveTest extends DurableSubscript
     }
 
     @Override
+    public void configurePlugins(BrokerService brokerService) throws Exception {
+        List<DestinationMapEntry> authorizationEntries = new ArrayList<>();
+
+        AuthorizationEntry entry = new AuthorizationEntry();
+        entry.setTopic(">");
+        entry.setRead(IDENTITY);
+        entry.setWrite(IDENTITY);
+        entry.setAdmin(IDENTITY);
+        authorizationEntries.add(entry);
+
+        DefaultAuthorizationMap authorizationMap = new DefaultAuthorizationMap(authorizationEntries);
+        AuthorizationPlugin authorizationPlugin = new AuthorizationPlugin(authorizationMap);
+
+        List<AuthenticationUser> users = new ArrayList<>();
+        users.add(new AuthenticationUser(IDENTITY, IDENTITY, IDENTITY));
+
+        SimpleAuthenticationPlugin authenticationPlugin = new SimpleAuthenticationPlugin(users);
+
+
+        broker.setPlugins(new BrokerPlugin[]{authenticationPlugin, authorizationPlugin});
+
+    }
+    @Override
     public PersistenceAdapter setDefaultPersistenceAdapter(BrokerService broker) throws IOException {
         broker.setKeepDurableSubsActive(keepDurableSubsActive);
         return super.setPersistenceAdapter(broker, defaultPersistenceAdapter);
@@ -78,6 +109,8 @@ public class DurableSubscriptionOfflineBrowseRemoveTest extends DurableSubscript
     @Override
     protected ActiveMQConnectionFactory createConnectionFactory() throws Exception {
         ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://" + getName(true));
+        connectionFactory.setUserName(IDENTITY);
+        connectionFactory.setPassword(IDENTITY);
         connectionFactory.setWatchTopicAdvisories(false);
         return connectionFactory;
     }

http://git-wip-us.apache.org/repos/asf/activemq/blob/cc9b9b08/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineTestBase.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineTestBase.java b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineTestBase.java
index 3bffb4e..74abf8a 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineTestBase.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/DurableSubscriptionOfflineTestBase.java
@@ -130,10 +130,15 @@ public abstract class DurableSubscriptionOfflineTestBase {
             // have lots of journal files
             ((KahaDBPersistenceAdapter)broker.getPersistenceAdapter()).setJournalMaxFileLength(journalMaxFileLength);
         }
+
+        configurePlugins(broker);
         broker.start();
         broker.waitUntilStarted();
     }
 
+    public void configurePlugins(BrokerService broker) throws Exception {
+    }
+
     protected void destroyBroker() throws Exception {
         if (broker != null)
             broker.stop();