summaryrefslogtreecommitdiff
path: root/qpid/java/systests/src
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-03-20 17:07:58 +0000
committerAlex Rudyy <orudyy@apache.org>2013-03-20 17:07:58 +0000
commitca84abd2a227eb09d483c66b8a3dcf7211484ee7 (patch)
treebcf165fde7045da2e3d94ddfc17a82c891a6b779 /qpid/java/systests/src
parentf0858c211bcf8c9666ba2a0bbbf6d28b8a90d885 (diff)
downloadqpid-python-ca84abd2a227eb09d483c66b8a3dcf7211484ee7.tar.gz
QPID-4661: Add UI into java broker web management console to edit broker attributes
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1458956 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java13
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java106
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java12
-rw-r--r--qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java2
4 files changed, 129 insertions, 4 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
index 078a1bb483..4ba2069dfd 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
@@ -41,14 +41,21 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase
{
List<Map<String, Object>> providerDetails = getRestTestHelper().getJsonAsList("/rest/authenticationprovider");
assertNotNull("Providers details cannot be null", providerDetails);
- assertEquals("Unexpected number of providers", 1, providerDetails.size());
+ assertEquals("Unexpected number of providers", 2, providerDetails.size());
for (Map<String, Object> provider : providerDetails)
{
- assertProvider(true, PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE, provider);
+ boolean managesPrincipals = true;
+ String type = PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE;
+ if (ANONYMOUS_AUTHENTICATION_PROVIDER.equals(provider.get(AuthenticationProvider.NAME)))
+ {
+ type = AnonymousAuthenticationManagerFactory.PROVIDER_TYPE;
+ managesPrincipals = false;
+ }
+ assertProvider(managesPrincipals, type , provider);
Map<String, Object> data = getRestTestHelper().getJsonAsSingletonList("/rest/authenticationprovider/"
+ provider.get(AuthenticationProvider.NAME));
assertNotNull("Cannot load data for " + provider.get(AuthenticationProvider.NAME), data);
- assertProvider(true, PlainPasswordFileAuthenticationManagerFactory.PROVIDER_TYPE, data);
+ assertProvider(managesPrincipals, type, data);
}
}
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
index 63691e9915..fe4115b4c0 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/BrokerRestTest.java
@@ -20,8 +20,10 @@
*/
package org.apache.qpid.systest.rest;
+import java.io.File;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -32,7 +34,10 @@ import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.adapter.BrokerAdapter;
+import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
+import org.apache.qpid.test.utils.TestSSLConstants;
public class BrokerRestTest extends QpidRestTestCase
{
@@ -86,6 +91,107 @@ public class BrokerRestTest extends QpidRestTestCase
new HashSet<String>(port2Protocols));
}
+ public void testPutToUpdateWithValidAttributeValues() throws Exception
+ {
+ Map<String, Object> brokerAttributes = getValidBrokerAttributes();
+
+ int response = getRestTestHelper().submitRequest("/rest/broker", "PUT", brokerAttributes);
+ assertEquals("Unexpected update response", 200, response);
+
+ restartBroker();
+ Map<String, Object> brokerDetails = getRestTestHelper().getJsonAsSingletonList("/rest/broker");
+ assertBrokerAttributes(brokerAttributes, brokerDetails);
+ }
+
+ public void testPutToUpdateWithInvalidAttributeValues() throws Exception
+ {
+ Map<String, Object> invalidAttributes = new HashMap<String, Object>();
+ invalidAttributes.put(Broker.DEFAULT_AUTHENTICATION_PROVIDER, "non-existing-provider");
+ invalidAttributes.put(Broker.DEFAULT_VIRTUAL_HOST, "non-existing-host");
+ invalidAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_AGE, -1000);
+ invalidAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_COUNT, -2000);
+ invalidAttributes.put(Broker.ALERT_THRESHOLD_QUEUE_DEPTH, -3000);
+ invalidAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_SIZE, -4000);
+ invalidAttributes.put(Broker.ALERT_REPEAT_GAP, -5000);
+ invalidAttributes.put(Broker.FLOW_CONTROL_SIZE_BYTES, -7000);
+ invalidAttributes.put(Broker.FLOW_CONTROL_RESUME_SIZE_BYTES, -16000);
+ invalidAttributes.put(Broker.MAXIMUM_DELIVERY_ATTEMPTS, -8);
+ invalidAttributes.put(Broker.HOUSEKEEPING_CHECK_PERIOD, -90000);
+ invalidAttributes.put(Broker.SESSION_COUNT_LIMIT, -10);
+ invalidAttributes.put(Broker.HEART_BEAT_DELAY, -11000);
+ invalidAttributes.put(Broker.STATISTICS_REPORTING_PERIOD, -12000);
+ invalidAttributes.put(Broker.ACL_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "non-existing-acl.acl");
+ invalidAttributes.put(Broker.KEY_STORE_PATH, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "non-existing-keystore.jks");
+ invalidAttributes.put(Broker.KEY_STORE_PASSWORD, "password1");
+ invalidAttributes.put(Broker.KEY_STORE_CERT_ALIAS, "java-broker1");
+ invalidAttributes.put(Broker.TRUST_STORE_PATH, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "non-existing-truststore.jks");
+ invalidAttributes.put(Broker.TRUST_STORE_PASSWORD, "password2");
+ invalidAttributes.put(Broker.PEER_STORE_PATH, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "non-existing-peerstore.jks");
+ invalidAttributes.put(Broker.PEER_STORE_PASSWORD, "password3");
+ invalidAttributes.put(Broker.GROUP_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "groups-non-existing");
+
+ for (Map.Entry<String, Object> entry : invalidAttributes.entrySet())
+ {
+ Map<String, Object> brokerAttributes = getValidBrokerAttributes();
+ brokerAttributes.put(entry.getKey(), entry.getValue());
+ int response = getRestTestHelper().submitRequest("/rest/broker", "PUT", brokerAttributes);
+ assertEquals("Unexpected update response for invalid attribute " + entry.getKey() + "=" + entry.getValue(), 409, response);
+ }
+
+ // a special case when FLOW_CONTROL_RESUME_SIZE_BYTES > FLOW_CONTROL_SIZE_BYTES
+ Map<String, Object> brokerAttributes = getValidBrokerAttributes();
+ brokerAttributes.put(Broker.FLOW_CONTROL_SIZE_BYTES, 1000);
+ brokerAttributes.put(Broker.FLOW_CONTROL_RESUME_SIZE_BYTES, 2000);
+ int response = getRestTestHelper().submitRequest("/rest/broker", "PUT", brokerAttributes);
+ assertEquals("Unexpected update response for flow resume size > flow size", 409, response);
+ }
+
+ private Map<String, Object> getValidBrokerAttributes()
+ {
+ Map<String, Object> brokerAttributes = new HashMap<String, Object>();
+ brokerAttributes.put(Broker.DEFAULT_AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER);
+ brokerAttributes.put(Broker.DEFAULT_VIRTUAL_HOST, TEST3_VIRTUALHOST);
+ brokerAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_AGE, 1000);
+ brokerAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_COUNT, 2000);
+ brokerAttributes.put(Broker.ALERT_THRESHOLD_QUEUE_DEPTH, 3000);
+ brokerAttributes.put(Broker.ALERT_THRESHOLD_MESSAGE_SIZE, 4000);
+ brokerAttributes.put(Broker.ALERT_REPEAT_GAP, 5000);
+ brokerAttributes.put(Broker.FLOW_CONTROL_SIZE_BYTES, 7000);
+ brokerAttributes.put(Broker.FLOW_CONTROL_RESUME_SIZE_BYTES, 6000);
+ brokerAttributes.put(Broker.MAXIMUM_DELIVERY_ATTEMPTS, 8);
+ brokerAttributes.put(Broker.DEAD_LETTER_QUEUE_ENABLED, true);
+ brokerAttributes.put(Broker.HOUSEKEEPING_CHECK_PERIOD, 90000);
+ brokerAttributes.put(Broker.SESSION_COUNT_LIMIT, 10);
+ brokerAttributes.put(Broker.HEART_BEAT_DELAY, 11000);
+ brokerAttributes.put(Broker.STATISTICS_REPORTING_PERIOD, 12000);
+ brokerAttributes.put(Broker.STATISTICS_REPORTING_RESET_ENABLED, true);
+ brokerAttributes.put(Broker.ACL_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "broker_example.acl");
+ brokerAttributes.put(Broker.KEY_STORE_PATH, TestSSLConstants.BROKER_KEYSTORE);
+ brokerAttributes.put(Broker.KEY_STORE_PASSWORD, TestSSLConstants.BROKER_KEYSTORE_PASSWORD);
+ brokerAttributes.put(Broker.KEY_STORE_CERT_ALIAS, "java-broker");
+ brokerAttributes.put(Broker.TRUST_STORE_PATH, TestSSLConstants.TRUSTSTORE);
+ brokerAttributes.put(Broker.TRUST_STORE_PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
+ brokerAttributes.put(Broker.PEER_STORE_PATH, TestSSLConstants.TRUSTSTORE);
+ brokerAttributes.put(Broker.PEER_STORE_PASSWORD, TestSSLConstants.TRUSTSTORE_PASSWORD);
+ brokerAttributes.put(Broker.GROUP_FILE, QpidTestCase.QPID_HOME + File.separator + "etc" + File.separator + "groups");
+ return brokerAttributes;
+ }
+
+ private void assertBrokerAttributes(Map<String, Object> expectedAttributes, Map<String, Object> actualAttributes)
+ {
+ for (Map.Entry<String, Object> entry : expectedAttributes.entrySet())
+ {
+ String attributeName = entry.getKey();
+ Object attributeValue = entry.getValue();
+ if (attributeName.equals(Broker.KEY_STORE_PASSWORD) || attributeName.equals(Broker.TRUST_STORE_PASSWORD) || attributeName.equals(Broker.PEER_STORE_PASSWORD))
+ {
+ attributeValue = "********";
+ }
+ Object currentValue = actualAttributes.get(attributeName);
+ assertEquals("Unexpected attribute " + attributeName + " value:", attributeValue, currentValue);
+ }
+ }
+
protected void assertBrokerAttributes(Map<String, Object> brokerDetails)
{
Asserts.assertAttributesPresent(brokerDetails, Broker.AVAILABLE_ATTRIBUTES,
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java
index e2b73aa2b5..30d5b195f1 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java
@@ -21,14 +21,21 @@
package org.apache.qpid.systest.rest;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
+import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
+import org.apache.qpid.server.security.auth.manager.ExternalAuthenticationManagerFactory;
import org.apache.qpid.test.utils.TestBrokerConfiguration;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
public class QpidRestTestCase extends QpidBrokerTestCase
{
+ public static final String ANONYMOUS_AUTHENTICATION_PROVIDER = "testAnonymous";
public static final String TEST1_VIRTUALHOST = "test";
public static final String TEST2_VIRTUALHOST = "test2";
public static final String TEST3_VIRTUALHOST = "test3";
@@ -77,6 +84,11 @@ public class QpidRestTestCase extends QpidBrokerTestCase
config.setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, _restTestHelper.getHttpPort());
config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_JMX_PORT);
config.removeObjectConfiguration(TestBrokerConfiguration.ENTRY_NAME_RMI_PORT);
+
+ Map<String, Object> anonymousProviderAttributes = new HashMap<String, Object>();
+ anonymousProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE);
+ anonymousProviderAttributes.put(AuthenticationProvider.NAME, ANONYMOUS_AUTHENTICATION_PROVIDER);
+ config.addAuthenticationProviderConfiguration(anonymousProviderAttributes);
}
public RestTestHelper getRestTestHelper()
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
index f5e326f90b..5593ad0b42 100644
--- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
+++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/StructureRestTest.java
@@ -45,7 +45,7 @@ public class StructureRestTest extends QpidRestTestCase
@SuppressWarnings("unchecked")
List<Map<String, Object>> providers = (List<Map<String, Object>>) structure.get("authenticationproviders");
- assertEquals("Unexpected number of authentication providers", 1, providers.size());
+ assertEquals("Unexpected number of authentication providers", 2, providers.size());
for (String hostName : EXPECTED_VIRTUALHOSTS)
{