summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-10-17 12:35:35 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-10-17 12:35:35 +0000
commitba126ca5218e76bd38be239aed9200cb33c66c99 (patch)
tree3bd255f3a995f812b01f9430e593b42ea40196cf /qpid/java/systests/src
parent2e62b717d3ca83f08010d86f4b7fb60615ae58a2 (diff)
downloadqpid-python-ba126ca5218e76bd38be239aed9200cb33c66c99.tar.gz
QPID-6161 : [Java Broker] add virtual host aliases
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1632553 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
-rwxr-xr-xqpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java1
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java51
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java18
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java14
-rw-r--r--qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java14
5 files changed, 95 insertions, 3 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
index 386cd80f38..369a76a6c6 100755
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
@@ -50,6 +50,7 @@ import javax.naming.NamingException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+
import org.apache.qpid.AMQException;
import org.apache.qpid.client.AMQConnectionFactory;
import org.apache.qpid.client.AMQConnectionURL;
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
index c7bcdd2edb..fb254f59ae 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/TestBrokerConfiguration.java
@@ -57,6 +57,8 @@ import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.PreferencesProvider;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.UUIDGenerator;
+import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.model.adapter.FileBasedGroupProvider;
import org.apache.qpid.server.model.adapter.FileBasedGroupProviderImpl;
import org.apache.qpid.server.plugin.PluggableFactoryLoader;
@@ -254,12 +256,47 @@ public class TestBrokerConfiguration
}
public UUID[] removeObjectConfiguration(final Class<? extends ConfiguredObject> category,
- String name)
+ final String name)
{
final ConfiguredObjectRecord entry = findObject(category, name);
+
if (entry != null)
{
+
+ if(category == VirtualHostNode.class)
+ {
+ final List<ConfiguredObjectRecord> aliasRecords = new ArrayList<>();
+ // remove vhost aliases associated with the vhost
+ final ConfiguredObjectRecordHandler visitor = new ConfiguredObjectRecordHandler()
+ {
+ @Override
+ public void begin()
+ {
+
+ }
+
+ @Override
+ public boolean handle(final ConfiguredObjectRecord record)
+ {
+ if (record.getType().equals(VirtualHostAlias.class.getSimpleName())
+ && name.equals(record.getAttributes().get(ConfiguredObject.NAME)))
+ {
+ aliasRecords.add(record);
+ }
+ return true;
+ }
+
+ @Override
+ public void end()
+ {
+
+ }
+ };
+ _store.visitConfiguredObjectRecords(visitor);
+ _store.remove(aliasRecords.toArray(new ConfiguredObjectRecord[aliasRecords.size()]));
+ }
return _store.remove(entry);
+
}
return null;
}
@@ -271,6 +308,18 @@ public class TestBrokerConfiguration
return id;
}
+ public UUID addObjectConfiguration(final Class<? extends ConfiguredObject> parentCategory, final String parentName,
+ Class<? extends ConfiguredObject> type, Map<String, Object> attributes)
+ {
+ UUID id = UUIDGenerator.generateRandomUUID();
+ ConfiguredObjectRecord entry =
+ new ConfiguredObjectRecordImpl(id, type.getSimpleName(), attributes,
+ Collections.singletonMap(parentCategory.getSimpleName(), findObject(parentCategory,parentName).getId()));
+
+ _store.update(true, entry);
+ return id;
+ }
+
public UUID addJmxManagementConfiguration()
{
Map<String, Object> attributes = new HashMap<String, Object>();
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
index 3464051fc5..1dba5ced9d 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
@@ -42,8 +42,11 @@ import org.slf4j.LoggerFactory;
import org.apache.qpid.client.AMQConnectionURL;
import org.apache.qpid.client.AMQTestConnection_0_10;
import org.apache.qpid.jms.ConnectionURL;
+import org.apache.qpid.server.model.DefaultVirtualHostAlias;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.VirtualHostNameAlias;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
@@ -216,7 +219,7 @@ public class SSLTest extends QpidBrokerTestCase
AMQTestConnection_0_10 con = new AMQTestConnection_0_10(url);
org.apache.qpid.transport.Connection transportCon = con.getConnection();
String userID = transportCon.getSecurityLayer().getUserID();
- assertEquals("The correct certificate was not choosen","app1@acme.org",userID);
+ assertEquals("The correct certificate was not chosen","app1@acme.org",userID);
con.close();
url = "amqp://guest:guest@test/?brokerlist='tcp://localhost:" +
@@ -226,7 +229,7 @@ public class SSLTest extends QpidBrokerTestCase
con = new AMQTestConnection_0_10(url);
transportCon = con.getConnection();
userID = transportCon.getSecurityLayer().getUserID();
- assertEquals("The correct certificate was not choosen","app2@acme.org",userID);
+ assertEquals("The correct certificate was not chosen","app2@acme.org",userID);
con.close();
}
}
@@ -465,6 +468,17 @@ public class SSLTest extends QpidBrokerTestCase
sslPortAttributes.put(Port.KEY_STORE, TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE);
sslPortAttributes.put(Port.TRUST_STORES, Collections.singleton(TestBrokerConfiguration.ENTRY_NAME_SSL_TRUSTSTORE));
getBrokerConfiguration().addObjectConfiguration(Port.class,sslPortAttributes);
+
+ Map<String, Object> aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "defaultAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, DefaultVirtualHostAlias.TYPE_NAME);
+ getBrokerConfiguration().addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
+ aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "nameAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, VirtualHostNameAlias.TYPE_NAME);
+ getBrokerConfiguration().addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
}
}
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
index 0d0c1257a2..5522187ee5 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
@@ -41,9 +41,12 @@ import javax.jms.JMSException;
import org.apache.qpid.client.AMQConnectionURL;
import org.apache.qpid.management.common.mbeans.ManagedConnection;
import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.DefaultVirtualHostAlias;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
import org.apache.qpid.server.model.TrustStore;
+import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.VirtualHostNameAlias;
import org.apache.qpid.server.security.FileTrustStore;
import org.apache.qpid.test.utils.JMXTestUtils;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
@@ -346,6 +349,17 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase
sslPortAttributes.put(Port.TRUST_STORES, trustStoreNames);
config.addObjectConfiguration(Port.class, sslPortAttributes);
+ Map<String, Object> aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "defaultAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, DefaultVirtualHostAlias.TYPE_NAME);
+ getBrokerConfiguration().addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
+ aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "nameAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, VirtualHostNameAlias.TYPE_NAME);
+ getBrokerConfiguration().addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
+
Map<String, Object> externalAuthProviderAttributes = new HashMap<String, Object>();
externalAuthProviderAttributes.put(AuthenticationProvider.NAME, TestBrokerConfiguration.ENTRY_NAME_EXTERNAL_PROVIDER);
externalAuthProviderAttributes.put(AuthenticationProvider.TYPE, ExternalAuthenticationManager.PROVIDER_TYPE);
diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java
index 1c32a3f671..f5e17a0953 100644
--- a/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java
+++ b/qpid/java/systests/src/test/java/org/apache/qpid/server/security/auth/manager/MultipleAuthenticationManagersTest.java
@@ -35,8 +35,11 @@ import javax.jms.JMSException;
import org.apache.qpid.AMQException;
import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.DefaultVirtualHostAlias;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
+import org.apache.qpid.server.model.VirtualHostAlias;
+import org.apache.qpid.server.model.VirtualHostNameAlias;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
@@ -61,6 +64,17 @@ public class MultipleAuthenticationManagersTest extends QpidBrokerTestCase
sslPortAttributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_ANONYMOUS_PROVIDER);
config.addObjectConfiguration(Port.class, sslPortAttributes);
+ Map<String, Object> aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "defaultAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, DefaultVirtualHostAlias.TYPE_NAME);
+ config.addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
+ aliasAttributes = new HashMap<>();
+ aliasAttributes.put(VirtualHostAlias.NAME, "nameAlias");
+ aliasAttributes.put(VirtualHostAlias.TYPE, VirtualHostNameAlias.TYPE_NAME);
+ getBrokerConfiguration().addObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_SSL_PORT, VirtualHostAlias.class, aliasAttributes);
+
+
// set the ssl system properties
setSystemProperty("javax.net.ssl.keyStore", KEYSTORE);
setSystemProperty("javax.net.ssl.keyStorePassword", KEYSTORE_PASSWORD);