You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2013/04/23 17:18:42 UTC
svn commit: r1471006 - in /qpid/branches/0.22/qpid/java: ./
amqp-1-0-client-jms/ amqp-1-0-client/ amqp-1-0-common/
broker-plugins/management-http/src/main/java/resources/
broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/
bro...
Author: robbie
Date: Tue Apr 23 15:18:41 2013
New Revision: 1471006
URL: http://svn.apache.org/r1471006
Log:
QPID-4753: Add additional tests for updated AcessControlProvider config, inc creating and removing AccessControlProviders and verifying ACLs governing their creation/update/deletion. Add message to web ui to signal the user that only one access control provider of a given type will be used by the broker and they should remove others.
merged from trunk r1471004
Added:
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java
- copied unchanged from r1471004, qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AccessControlProviderRestTest.java
Modified:
qpid/branches/0.22/qpid/java/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-client/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/ (props changed)
qpid/branches/0.22/qpid/java/amqp-1-0-common/ (props changed)
qpid/branches/0.22/qpid/java/broker/ (props changed)
qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/checkUser.js
qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html
qpid/branches/0.22/qpid/java/broker/bin/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java (props changed)
qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/ (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java (props changed)
qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java (props changed)
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java (props changed)
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java (props changed)
qpid/branches/0.22/qpid/java/test-profiles/ (props changed)
qpid/branches/0.22/qpid/java/test-profiles/CPPExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/Excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaBDBExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaPre010Excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/JavaTransientExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/XAExcludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.async.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.cluster.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.noprefetch.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.excludes (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/cpp.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-bdb.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-dby.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/java-mms.0-9-1.testprofile (props changed)
qpid/branches/0.22/qpid/java/test-profiles/log4j-test.xml (props changed)
qpid/branches/0.22/qpid/java/test-profiles/test-provider.properties (props changed)
qpid/branches/0.22/qpid/java/test-profiles/test_resources/ (props changed)
qpid/branches/0.22/qpid/java/test-profiles/testprofile.defaults (props changed)
Propchange: qpid/branches/0.22/qpid/java/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java:r1471004
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-client/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-client:r1471004
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-client-jms/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-client-jms:r1471004
Propchange: qpid/branches/0.22/qpid/java/amqp-1-0-common/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/amqp-1-0-common:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker:r1471004
Modified: qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/checkUser.js
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/checkUser.js?rev=1471006&r1=1471005&r2=1471006&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/checkUser.js (original)
+++ qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/checkUser.js Tue Apr 23 15:18:41 2013
@@ -28,7 +28,7 @@ var updateUI = function updateUI(data)
if(data.user)
{
dom.byId("authenticatedUser").innerHTML = data.user;
- dojo.style(dom.byId("login"), {display: 'block'});
+ dom.byId("login").style.display = "block";
}
};
Modified: qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1471006&r1=1471005&r2=1471006&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js (original)
+++ qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js Tue Apr 23 15:18:41 2013
@@ -492,6 +492,7 @@ define(["dojo/_base/xhr",
this.controller = controller;
this.query = "rest/broker";
this.attributes = attributes;
+ this.accessControlProvidersWarn = query(".broker-access-control-providers-warning", node)[0]
var that = this;
xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"})
@@ -647,6 +648,7 @@ define(["dojo/_base/xhr",
that.controller.show("accesscontrolprovider", name, brokerObj);
});
}, gridProperties, EnhancedGrid);
+ that.displayACLWarnMessage(aclData);
});
xhr.get({url: "rest/logrecords", sync: properties.useSyncGet, handleAs: "json"})
@@ -715,6 +717,43 @@ define(["dojo/_base/xhr",
}
};
+ BrokerUpdater.prototype.displayACLWarnMessage = function(aclProviderData)
+ {
+ var message = "";
+ if (aclProviderData.length > 1)
+ {
+ var aclProviders = {};
+ var theSameTypeFound = false;
+ for(var d=0; d<aclProviderData.length; d++)
+ {
+ var acl = aclProviderData[d];
+ var aclType = acl.type;
+ if (aclProviders[aclType])
+ {
+ aclProviders[aclType].push(acl.name);
+ theSameTypeFound = true;
+ }
+ else
+ {
+ aclProviders[aclType] = [acl.name];
+ }
+ }
+
+ if (theSameTypeFound)
+ {
+ message = "Only one instance of a given type will be used. Please remove an instance of type(s):";
+ for(var aclType in aclProviders)
+ {
+ if(aclProviders[aclType].length>1)
+ {
+ message += " " + aclType;
+ }
+ }
+ }
+ }
+ this.accessControlProvidersWarn.innerHTML = message;
+ }
+
BrokerUpdater.prototype.update = function()
{
@@ -749,6 +788,7 @@ define(["dojo/_base/xhr",
{
var data = that.brokerData.accesscontrolproviders ? that.brokerData.accesscontrolproviders :[];
that.accessControlProvidersGrid.update(data);
+ that.displayACLWarnMessage(data);
}
});
Modified: qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html?rev=1471006&r1=1471005&r2=1471006&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html (original)
+++ qpid/branches/0.22/qpid/java/broker-plugins/management-http/src/main/java/resources/showBroker.html Tue Apr 23 15:18:41 2013
@@ -184,6 +184,7 @@
</div>
<br/>
<div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Access Control Providers'">
+ <div class="broker-access-control-providers-warning" style="color: red"></div>
<div class="broker-access-control-providers"></div>
<button data-dojo-type="dijit.form.Button" class="addAccessControlProvider">Add Access Control Provider</button>
<button data-dojo-type="dijit.form.Button" class="deleteAccessControlProvider">Delete Access Control Provider</button>
Propchange: qpid/branches/0.22/qpid/java/broker/bin/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/bin:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_1_0.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/ProtocolEngine_1_0_0_SASL.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/v1_0:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/LoggingManagement.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedBroker.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedConnection.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/UserManagement.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanAttribute.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanConstructor.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanDescription.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperation.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/annotations/MBeanOperationParameter.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/SupportedProtocolVersionsTest.java:r1471004
Modified: qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java?rev=1471006&r1=1471005&r2=1471006&view=diff
==============================================================================
--- qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java (original)
+++ qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java Tue Apr 23 15:18:41 2013
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.qpid.server.model.AccessControlProvider;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.GroupProvider;
@@ -36,6 +37,7 @@ import org.apache.qpid.server.model.Port
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.TrustStore;
import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.security.access.FileAccessControlProviderConstants;
import org.apache.qpid.server.security.acl.AbstractACLTestCase;
import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
import org.apache.qpid.server.security.auth.manager.PlainPasswordFileAuthenticationManagerFactory;
@@ -51,6 +53,7 @@ public class BrokerACLTest extends QpidR
{
private static final String ALLOWED_USER = "user1";
private static final String DENIED_USER = "user2";
+ private String _secondaryAclFileContent = "";
@Override
protected void customizeConfiguration() throws ConfigurationException, IOException
@@ -64,6 +67,12 @@ public class BrokerACLTest extends QpidR
"ACL DENY-LOG " + DENIED_USER + " CONFIGURE BROKER",
"ACL DENY-LOG ALL ALL");
+ _secondaryAclFileContent =
+ "ACL ALLOW-LOG ALL ACCESS MANAGEMENT\n" +
+ "ACL ALLOW-LOG " + ALLOWED_USER + " CONFIGURE BROKER\n" +
+ "ACL DENY-LOG " + DENIED_USER + " CONFIGURE BROKER\n" +
+ "ACL DENY-LOG ALL ALL";
+
getBrokerConfiguration().setObjectAttribute(TestBrokerConfiguration.ENTRY_NAME_HTTP_MANAGEMENT,
"httpBasicAuthenticationEnabled", true);
}
@@ -754,6 +763,122 @@ public class BrokerACLTest extends QpidR
assertEquals("Setting of group provider attributes should be denied", 403, responseCode);
}
+ /* === AccessControlProvider === */
+
+ public void testCreateAccessControlProviderAllowed() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be allowed", 201, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+ }
+
+ public void testCreateAccessControlProviderDenied() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(DENIED_USER, DENIED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be denied", 403, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+ }
+
+ public void testDeleteAccessControlProviderDenied() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be allowed", 201, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+
+ getRestTestHelper().setUsernameAndPassword(DENIED_USER, DENIED_USER);
+
+ responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "DELETE", null);
+ assertEquals("Access control provider deletion should be denied", 403, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+ }
+
+ public void testDeleteAccessControlProviderAllowed() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be allowed", 201, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+
+ responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "DELETE", null);
+ assertEquals("Access control provider deletion should be allowed", 200, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+ }
+
+ public void testSetAccessControlProviderAttributesAllowedButUnsupported() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be allowed", 201, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(GroupProvider.NAME, accessControlProviderName);
+ attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
+ attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+ responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "PUT", attributes);
+ assertEquals("Setting of access control provider attributes should be allowed but not supported", 409, responseCode);
+ }
+
+ public void testSetAccessControlProviderAttributesDenied() throws Exception
+ {
+ getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER);
+
+ String accessControlProviderName = getTestName();
+
+ assertAccessControlProviderExistence(accessControlProviderName, false);
+
+ int responseCode = createAccessControlProvider(accessControlProviderName);
+ assertEquals("Access control provider creation should be allowed", 201, responseCode);
+
+ assertAccessControlProviderExistence(accessControlProviderName, true);
+
+ getRestTestHelper().setUsernameAndPassword(DENIED_USER, DENIED_USER);
+
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(GroupProvider.NAME, accessControlProviderName);
+ attributes.put(GroupProvider.TYPE, FileGroupManagerFactory.GROUP_FILE_PROVIDER_TYPE);
+ attributes.put(FileGroupManagerFactory.PATH, "/path/to/file");
+ responseCode = getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "PUT", attributes);
+ assertEquals("Setting of access control provider attributes should be denied", 403, responseCode);
+ }
+
+ /* === Utility Methods === */
+
private int createPort(String portName) throws Exception
{
Map<String, Object> attributes = new HashMap<String, Object>();
@@ -888,4 +1013,22 @@ public class BrokerACLTest extends QpidR
return getRestTestHelper().submitRequest("/rest/groupprovider/" + groupProviderName, "PUT", attributes);
}
+
+ private void assertAccessControlProviderExistence(String accessControlProviderName, boolean exists) throws Exception
+ {
+ String path = "/rest/accesscontrolprovider/" + accessControlProviderName;
+ List<Map<String, Object>> providers = getRestTestHelper().getJsonAsList(path);
+ assertEquals("Unexpected result", exists, !providers.isEmpty());
+ }
+
+ private int createAccessControlProvider(String accessControlProviderName) throws Exception
+ {
+ File file = TestFileUtils.createTempFile(this, ".acl", _secondaryAclFileContent);
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(AccessControlProvider.NAME, accessControlProviderName);
+ attributes.put(AccessControlProvider.TYPE, FileAccessControlProviderConstants.ACL_FILE_PROVIDER_TYPE);
+ attributes.put(FileAccessControlProviderConstants.PATH, file.getAbsoluteFile());
+
+ return getRestTestHelper().submitRequest("/rest/accesscontrolprovider/" + accessControlProviderName, "PUT", attributes);
+ }
}
Propchange: qpid/branches/0.22/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/CPPExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/CPPExcludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/Excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/Excludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaBDBExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaBDBExcludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaExcludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaPre010Excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaPre010Excludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/JavaTransientExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/JavaTransientExcludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/XAExcludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/XAExcludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.async.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.async.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.cluster.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.cluster.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.noprefetch.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.noprefetch.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.excludes
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.excludes:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.ssl.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.ssl.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/cpp.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/cpp.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-bdb-spawn.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-bdb.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-bdb.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-dby.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-dby.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-10.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/java-mms.0-9-1.testprofile
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/java-mms.0-9-1.testprofile:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/log4j-test.xml
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/log4j-test.xml:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/test-provider.properties
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/test-provider.properties:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/test_resources/
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/test_resources:r1471004
Propchange: qpid/branches/0.22/qpid/java/test-profiles/testprofile.defaults
------------------------------------------------------------------------------
Merged /qpid/trunk/qpid/java/test-profiles/testprofile.defaults:r1471004
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org