summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java330
1 files changed, 253 insertions, 77 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
index 4a69c94ee1..ad1df1c777 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
@@ -23,12 +23,24 @@ package org.apache.qpid.server.configuration;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.RandomAccessFile;
import java.util.List;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
+import org.apache.qpid.AMQException;
+import org.apache.qpid.codec.AMQCodecFactory;
+import org.apache.qpid.server.protocol.AMQMinaProtocolSession;
+import org.apache.qpid.server.protocol.AMQProtocolSession;
+import org.apache.qpid.server.protocol.TestIoSession;
+import org.apache.qpid.server.queue.MockProtocolSession;
+import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry;
+import org.apache.qpid.server.security.access.ACLManager;
+import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
import junit.framework.TestCase;
@@ -43,6 +55,12 @@ public class ServerConfigurationTest extends TestCase
_config = new XMLConfiguration();
}
+ @Override
+ public void tearDown()
+ {
+ ApplicationRegistry.removeAll();
+ }
+
public void testSetJMXManagementPort() throws ConfigurationException
{
ServerConfiguration serverConfig = new ServerConfiguration(_config);
@@ -63,7 +81,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getPlatformMbeanserver());
- // Check value we set
+ // Check value we set
_config.setProperty("management.platform-mbeanserver", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getPlatformMbeanserver());
@@ -75,7 +93,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(null, serverConfig.getPluginDirectory());
- // Check value we set
+ // Check value we set
_config.setProperty("plugin-directory", "/path/to/plugins");
serverConfig = new ServerConfiguration(_config);
assertEquals("/path/to/plugins", serverConfig.getPluginDirectory());
@@ -87,7 +105,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getPrincipalDatabaseNames().size());
- // Check value we set
+ // Check value we set
_config.setProperty("security.principal-databases.principal-database(0).name", "a");
_config.setProperty("security.principal-databases.principal-database(1).name", "b");
serverConfig = new ServerConfiguration(_config);
@@ -96,14 +114,14 @@ public class ServerConfigurationTest extends TestCase
assertEquals("a", dbs.get(0));
assertEquals("b", dbs.get(1));
}
-
+
public void testGetPrincipalDatabaseClass() throws ConfigurationException
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getPrincipalDatabaseClass().size());
- // Check value we set
+ // Check value we set
_config.setProperty("security.principal-databases.principal-database(0).class", "a");
_config.setProperty("security.principal-databases.principal-database(1).class", "b");
serverConfig = new ServerConfiguration(_config);
@@ -119,7 +137,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getPrincipalDatabaseAttributeNames(1).size());
- // Check value we set
+ // Check value we set
_config.setProperty("security.principal-databases.principal-database(0).attributes(0).attribute.name", "a");
_config.setProperty("security.principal-databases.principal-database(0).attributes(1).attribute.name", "b");
serverConfig = new ServerConfiguration(_config);
@@ -129,14 +147,13 @@ public class ServerConfigurationTest extends TestCase
assertEquals("b", dbs.get(1));
}
-
public void testGetPrincipalDatabaseAttributeValues() throws ConfigurationException
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getPrincipalDatabaseAttributeValues(1).size());
- // Check value we set
+ // Check value we set
_config.setProperty("security.principal-databases.principal-database(0).attributes(0).attribute.value", "a");
_config.setProperty("security.principal-databases.principal-database(0).attributes(1).attribute.value", "b");
serverConfig = new ServerConfiguration(_config);
@@ -152,7 +169,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getManagementAccessList().size());
- // Check value we set
+ // Check value we set
_config.setProperty("security.jmx.access(0)", "a");
_config.setProperty("security.jmx.access(1)", "b");
serverConfig = new ServerConfiguration(_config);
@@ -168,31 +185,19 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(65536, serverConfig.getFrameSize());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.framesize", "23");
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getFrameSize());
}
- public void testGetManagementSecurityEnabled() throws ConfigurationException
- {
- // Check default
- ServerConfiguration serverConfig = new ServerConfiguration(_config);
- assertEquals(false, serverConfig.getManagementSecurityEnabled());
-
- // Check value we set
- _config.setProperty("management.security-enabled", true);
- serverConfig = new ServerConfiguration(_config);
- assertEquals(true, serverConfig.getManagementSecurityEnabled());
- }
-
public void testGetProtectIOEnabled() throws ConfigurationException
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getProtectIOEnabled());
- // Check value we set
+ // Check value we set
_config.setProperty("broker.connector.protectio.enabled", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getProtectIOEnabled());
@@ -204,7 +209,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(262144, serverConfig.getBufferReadLimit());
- // Check value we set
+ // Check value we set
_config.setProperty("broker.connector.protectio.readBufferLimitSize", 23);
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getBufferReadLimit());
@@ -216,7 +221,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(262144, serverConfig.getBufferWriteLimit());
- // Check value we set
+ // Check value we set
_config.setProperty("broker.connector.protectio.writeBufferLimitSize", 23);
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getBufferWriteLimit());
@@ -228,7 +233,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getSynchedClocks());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.synced-clocks", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getSynchedClocks());
@@ -240,7 +245,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getMsgAuth());
- // Check value we set
+ // Check value we set
_config.setProperty("security.msg-auth", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getMsgAuth());
@@ -252,7 +257,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(null, serverConfig.getJMXPrincipalDatabase());
- // Check value we set
+ // Check value we set
_config.setProperty("security.jmx.principal-database", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getJMXPrincipalDatabase());
@@ -264,7 +269,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(null, serverConfig.getManagementKeyStorePath());
- // Check value we set
+ // Check value we set
_config.setProperty("management.ssl.keyStorePath", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getManagementKeyStorePath());
@@ -276,7 +281,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getManagementSSLEnabled());
- // Check value we set
+ // Check value we set
_config.setProperty("management.ssl.enabled", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getManagementSSLEnabled());
@@ -288,7 +293,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(null, serverConfig.getManagementKeyStorePassword());
- // Check value we set
+ // Check value we set
_config.setProperty("management.ssl.keyStorePassword", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getManagementKeyStorePassword());
@@ -300,7 +305,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getQueueAutoRegister());
- // Check value we set
+ // Check value we set
_config.setProperty("queue.auto_register", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getQueueAutoRegister());
@@ -312,7 +317,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getManagementEnabled());
- // Check value we set
+ // Check value we set
_config.setProperty("management.enabled", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getManagementEnabled());
@@ -320,7 +325,7 @@ public class ServerConfigurationTest extends TestCase
public void testSetManagementEnabled() throws ConfigurationException
{
- // Check value we set
+ // Check value we set
ServerConfiguration serverConfig = new ServerConfiguration(_config);
serverConfig.setManagementEnabled(false);
assertEquals(false, serverConfig.getManagementEnabled());
@@ -332,7 +337,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(5, serverConfig.getHeartBeatDelay());
- // Check value we set
+ // Check value we set
_config.setProperty("heartbeat.delay", 23);
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getHeartBeatDelay());
@@ -344,7 +349,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(2.0, serverConfig.getHeartBeatTimeout());
- // Check value we set
+ // Check value we set
_config.setProperty("heartbeat.timeoutFactor", 2.3);
serverConfig = new ServerConfiguration(_config);
assertEquals(2.3, serverConfig.getHeartBeatTimeout());
@@ -356,7 +361,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getMaximumMessageAge());
- // Check value we set
+ // Check value we set
_config.setProperty("maximumMessageAge", 10L);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getMaximumMessageAge());
@@ -368,7 +373,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getMaximumMessageCount());
- // Check value we set
+ // Check value we set
_config.setProperty("maximumMessageCount", 10L);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getMaximumMessageCount());
@@ -380,7 +385,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getMaximumQueueDepth());
- // Check value we set
+ // Check value we set
_config.setProperty("maximumQueueDepth", 10L);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getMaximumQueueDepth());
@@ -392,7 +397,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getMaximumMessageSize());
- // Check value we set
+ // Check value we set
_config.setProperty("maximumMessageSize", 10L);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getMaximumMessageSize());
@@ -404,7 +409,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(0, serverConfig.getMinimumAlertRepeatGap());
- // Check value we set
+ // Check value we set
_config.setProperty("minimumAlertRepeatGap", 10L);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getMinimumAlertRepeatGap());
@@ -416,7 +421,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(4, serverConfig.getProcessors());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.processors", 10);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getProcessors());
@@ -428,7 +433,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(5672, serverConfig.getPort());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.port", 10);
serverConfig = new ServerConfiguration(_config);
assertEquals(10, serverConfig.getPort());
@@ -440,7 +445,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals("wildcard", serverConfig.getBind());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.bind", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getBind());
@@ -452,7 +457,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(32767, serverConfig.getReceiveBufferSize());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.socketReceiveBuffer", "23");
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getReceiveBufferSize());
@@ -464,7 +469,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(32767, serverConfig.getWriteBufferSize());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.socketWriteBuffer", "23");
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getWriteBufferSize());
@@ -476,7 +481,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getTcpNoDelay());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.tcpNoDelay", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getTcpNoDelay());
@@ -488,7 +493,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getEnableExecutorPool());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.filterchain[@enableExecutorPool]", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getEnableExecutorPool());
@@ -500,7 +505,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getEnablePooledAllocator());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.enablePooledAllocator", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getEnablePooledAllocator());
@@ -512,7 +517,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getEnableDirectBuffers());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.enableDirectBuffers", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getEnableDirectBuffers());
@@ -524,7 +529,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getEnableSSL());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.enabled", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getEnableSSL());
@@ -536,19 +541,19 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getSSLOnly());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.sslOnly", false);
serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getSSLOnly());
}
-
+
public void testGetSSLPort() throws ConfigurationException
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(8672, serverConfig.getSSLPort());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.port", 23);
serverConfig = new ServerConfiguration(_config);
assertEquals(23, serverConfig.getSSLPort());
@@ -560,19 +565,19 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals("none", serverConfig.getKeystorePath());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.keystorePath", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getKeystorePath());
}
-
+
public void testGetKeystorePassword() throws ConfigurationException
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals("none", serverConfig.getKeystorePassword());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.keystorePassword", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getKeystorePassword());
@@ -584,7 +589,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals("SunX509", serverConfig.getCertType());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.ssl.certType", "a");
serverConfig = new ServerConfiguration(_config);
assertEquals("a", serverConfig.getCertType());
@@ -596,7 +601,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getQpidNIO());
- // Check value we set
+ // Check value we set
_config.setProperty("connector.qpidnio", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getQpidNIO());
@@ -608,7 +613,7 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration serverConfig = new ServerConfiguration(_config);
assertEquals(false, serverConfig.getUseBiasedWrites());
- // Check value we set
+ // Check value we set
_config.setProperty("advanced.useWriteBiasedPool", true);
serverConfig = new ServerConfiguration(_config);
assertEquals(true, serverConfig.getUseBiasedWrites());
@@ -618,17 +623,17 @@ public class ServerConfigurationTest extends TestCase
{
// Check default
ServerConfiguration serverConfig = new ServerConfiguration(_config);
- assertEquals(30000, serverConfig.getHousekeepingExpiredMessageCheckPeriod());
+ assertEquals(30000, serverConfig.getHousekeepingCheckPeriod());
- // Check value we set
+ // Check value we set
_config.setProperty("housekeeping.expiredMessageCheckPeriod", 23L);
serverConfig = new ServerConfiguration(_config);
- assertEquals(23, serverConfig.getHousekeepingExpiredMessageCheckPeriod());
+ assertEquals(23, serverConfig.getHousekeepingCheckPeriod());
serverConfig.setHousekeepingExpiredMessageCheckPeriod(42L);
- assertEquals(42, serverConfig.getHousekeepingExpiredMessageCheckPeriod());
+ assertEquals(42, serverConfig.getHousekeepingCheckPeriod());
}
- public void testSingleConfiguration() throws IOException, ConfigurationException
+ public void testSingleConfiguration() throws IOException, ConfigurationException
{
File fileA = File.createTempFile(getClass().getName(), null);
fileA.deleteOnExit();
@@ -638,36 +643,207 @@ public class ServerConfigurationTest extends TestCase
ServerConfiguration conf = new ServerConfiguration(fileA);
assertEquals(4235, conf.getSSLPort());
}
-
+
public void testCombinedConfiguration() throws IOException, ConfigurationException
{
File mainFile = File.createTempFile(getClass().getName(), null);
File fileA = File.createTempFile(getClass().getName(), null);
File fileB = File.createTempFile(getClass().getName(), null);
-
+
mainFile.deleteOnExit();
fileA.deleteOnExit();
fileB.deleteOnExit();
-
+
FileWriter out = new FileWriter(mainFile);
out.write("<configuration><system/>");
- out.write("<xml fileName=\""+fileA.getAbsolutePath()+"\"/>");
- out.write("<xml fileName=\""+fileB.getAbsolutePath()+"\"/>");
+ out.write("<xml fileName=\"" + fileA.getAbsolutePath() + "\"/>");
+ out.write("<xml fileName=\"" + fileB.getAbsolutePath() + "\"/>");
out.write("</configuration>");
out.close();
-
+
out = new FileWriter(fileA);
out.write("<broker><connector><port>2342</port><ssl><port>4235</port></ssl></connector></broker>");
out.close();
-
+
out = new FileWriter(fileB);
out.write("<broker><connector><ssl><port>2345</port></ssl><qpidnio>true</qpidnio></connector></broker>");
out.close();
-
+
ServerConfiguration config = new ServerConfiguration(mainFile.getAbsoluteFile());
- assertEquals(4235, config.getSSLPort()); // From first file, not overriden by second
- assertEquals(2342, config.getPort()); // From the first file, not present in the second
- assertEquals(true, config.getQpidNIO()); // From the second file, not present in the first
+ assertEquals(4235, config.getSSLPort()); // From first file, not
+ // overriden by second
+ assertEquals(2342, config.getPort()); // From the first file, not
+ // present in the second
+ assertEquals(true, config.getQpidNIO()); // From the second file, not
+ // present in the first
}
-
+
+ public void testCombinedConfigurationFirewall() throws Exception
+ {
+ // Write out config
+ File mainFile = File.createTempFile(getClass().getName(), null);
+ File fileA = File.createTempFile(getClass().getName(), null);
+ File fileB = File.createTempFile(getClass().getName(), null);
+
+ mainFile.deleteOnExit();
+ fileA.deleteOnExit();
+ fileB.deleteOnExit();
+
+ FileWriter out = new FileWriter(mainFile);
+ out.write("<configuration><system/>");
+ out.write("<xml fileName=\"" + fileA.getAbsolutePath() + "\"/>");
+ out.write("</configuration>");
+ out.close();
+
+ out = new FileWriter(fileA);
+ out.write("<broker>\n");
+ out.write("\t<management><enabled>false</enabled></management>\n");
+ out.write("\t<security>\n");
+ out.write("\t\t<principal-databases>\n");
+ out.write("\t\t\t<principal-database>\n");
+ out.write("\t\t\t\t<name>passwordfile</name>\n");
+ out.write("\t\t\t\t<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>\n");
+ out.write("\t\t\t\t<attributes>\n");
+ out.write("\t\t\t\t\t<attribute>\n");
+ out.write("\t\t\t\t\t\t<name>passwordFile</name>\n");
+ out.write("\t\t\t\t\t\t<value>/dev/null</value>\n");
+ out.write("\t\t\t\t\t</attribute>\n");
+ out.write("\t\t\t\t</attributes>\n");
+ out.write("\t\t\t</principal-database>\n");
+ out.write("\t\t</principal-databases>\n");
+ out.write("\t\t<jmx>\n");
+ out.write("\t\t\t<access>/dev/null</access>\n");
+ out.write("\t\t\t<principal-database>passwordfile</principal-database>\n");
+ out.write("\t\t</jmx>\n");
+ out.write("\t\t<firewall>\n");
+ out.write("\t\t\t<xml fileName=\"" + fileB.getAbsolutePath() + "\"/>");
+ out.write("\t\t</firewall>\n");
+ out.write("\t</security>\n");
+ out.write("\t<virtualhosts>\n");
+ out.write("\t\t<virtualhost>\n");
+ out.write("\t\t\t<name>test</name>\n");
+ out.write("\t\t</virtualhost>\n");
+ out.write("\t</virtualhosts>\n");
+ out.write("</broker>\n");
+ out.close();
+
+ out = new FileWriter(fileB);
+ out.write("<firewall>\n");
+ out.write("\t<rule access=\"deny\" network=\"127.0.0.1\"/>");
+ out.write("</firewall>\n");
+ out.close();
+
+ // Load config
+ ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile);
+ ApplicationRegistry.initialise(reg, 1);
+
+ // Test config
+ TestIoSession iosession = new TestIoSession();
+ iosession.setAddress("127.0.0.1");
+ VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry();
+ VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test");
+ AMQCodecFactory codecFactory = new AMQCodecFactory(true);
+ AMQProtocolSession session = new AMQMinaProtocolSession(iosession, virtualHostRegistry, codecFactory);
+ assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost));
+ }
+
+ public void testCombinedConfigurationFirewallReload() throws Exception
+ {
+ // Write out config
+ File mainFile = File.createTempFile(getClass().getName(), null);
+ File fileA = File.createTempFile(getClass().getName(), null);
+ File fileB = File.createTempFile(getClass().getName(), null);
+
+ mainFile.deleteOnExit();
+ fileA.deleteOnExit();
+ fileB.deleteOnExit();
+
+ FileWriter out = new FileWriter(mainFile);
+ out.write("<configuration><system/>");
+ out.write("<xml fileName=\"" + fileA.getAbsolutePath() + "\"/>");
+ out.write("</configuration>");
+ out.close();
+
+ out = new FileWriter(fileA);
+ out.write("<broker>\n");
+ out.write("\t<management><enabled>false</enabled></management>\n");
+ out.write("\t<security>\n");
+ out.write("\t\t<principal-databases>\n");
+ out.write("\t\t\t<principal-database>\n");
+ out.write("\t\t\t\t<name>passwordfile</name>\n");
+ out.write("\t\t\t\t<class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>\n");
+ out.write("\t\t\t\t<attributes>\n");
+ out.write("\t\t\t\t\t<attribute>\n");
+ out.write("\t\t\t\t\t\t<name>passwordFile</name>\n");
+ out.write("\t\t\t\t\t\t<value>/dev/null</value>\n");
+ out.write("\t\t\t\t\t</attribute>\n");
+ out.write("\t\t\t\t</attributes>\n");
+ out.write("\t\t\t</principal-database>\n");
+ out.write("\t\t</principal-databases>\n");
+ out.write("\t\t<jmx>\n");
+ out.write("\t\t\t<access>/dev/null</access>\n");
+ out.write("\t\t\t<principal-database>passwordfile</principal-database>\n");
+ out.write("\t\t</jmx>\n");
+ out.write("\t\t<firewall>\n");
+ out.write("\t\t\t<xml fileName=\"" + fileB.getAbsolutePath() + "\"/>");
+ out.write("\t\t</firewall>\n");
+ out.write("\t</security>\n");
+ out.write("\t<virtualhosts>\n");
+ out.write("\t\t<virtualhost>\n");
+ out.write("\t\t\t<name>test</name>\n");
+ out.write("\t\t</virtualhost>\n");
+ out.write("\t</virtualhosts>\n");
+ out.write("</broker>\n");
+ out.close();
+
+ out = new FileWriter(fileB);
+ out.write("<firewall>\n");
+ out.write("\t<rule access=\"deny\" network=\"127.0.0.1\"/>");
+ out.write("</firewall>\n");
+ out.close();
+
+ // Load config
+ ApplicationRegistry reg = new ConfigurationFileApplicationRegistry(mainFile);
+ ApplicationRegistry.initialise(reg, 1);
+
+ // Test config
+ TestIoSession iosession = new TestIoSession();
+ iosession.setAddress("127.0.0.1");
+ VirtualHostRegistry virtualHostRegistry = reg.getVirtualHostRegistry();
+ VirtualHost virtualHost = virtualHostRegistry.getVirtualHost("test");
+ AMQCodecFactory codecFactory = new AMQCodecFactory(true);
+ AMQProtocolSession session = new AMQMinaProtocolSession(iosession, virtualHostRegistry, codecFactory);
+ assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost));
+
+ RandomAccessFile fileBRandom = new RandomAccessFile(fileB, "rw");
+ fileBRandom.setLength(0);
+ fileBRandom.seek(0);
+ fileBRandom.close();
+
+ out = new FileWriter(fileB);
+ out.write("<firewall>\n");
+ out.write("\t<rule access=\"allow\" network=\"127.0.0.1\"/>");
+ out.write("</firewall>\n");
+ out.close();
+
+ reg.getConfiguration().reparseConfigFile();
+
+ assertTrue(reg.getAccessManager().authoriseConnect(session, virtualHost));
+
+ fileBRandom = new RandomAccessFile(fileB, "rw");
+ fileBRandom.setLength(0);
+ fileBRandom.seek(0);
+ fileBRandom.close();
+
+ out = new FileWriter(fileB);
+ out.write("<firewall>\n");
+ out.write("\t<rule access=\"deny\" network=\"127.0.0.1\"/>");
+ out.write("</firewall>\n");
+ out.close();
+
+ reg.getConfiguration().reparseConfigFile();
+
+ assertFalse(reg.getAccessManager().authoriseConnect(session, virtualHost));
+ }
+
}