summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java24
-rw-r--r--qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java36
-rwxr-xr-xqpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java2
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java57
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java12
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java7
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java4
-rwxr-xr-xqpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java6
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java67
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java46
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js8
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js47
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js7
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js25
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js38
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js29
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js21
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js30
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js28
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js22
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js33
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js26
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js27
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js19
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js13
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js32
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java2
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java2
28 files changed, 293 insertions, 377 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
index c1bd1b0bb8..99db75ac91 100644
--- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
+++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java
@@ -20,7 +20,6 @@
*/
package org.apache.qpid.server.security.access.plugins;
-import java.security.AccessControlException;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
@@ -33,7 +32,6 @@ import org.apache.log4j.Logger;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.model.AccessControlProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ManagedAttributeField;
@@ -41,7 +39,6 @@ import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
import org.apache.qpid.server.security.AccessControl;
-import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.urlstreamhandler.data.Handler;
public class ACLFileAccessControlProviderImpl
@@ -229,27 +226,6 @@ public class ACLFileAccessControlProviderImpl
return returnVal;
}
- @Override
- protected void authoriseSetDesiredState(State desiredState) throws AccessControlException
- {
- if(desiredState == State.DELETED)
- {
- if (!_broker.getSecurityManager().authoriseConfiguringBroker(getName(), AccessControlProvider.class, Operation.DELETE))
- {
- throw new AccessControlException("Deletion of AccessControlProvider is denied");
- }
- }
- }
-
- @Override
- protected void authoriseSetAttributes(ConfiguredObject<?> modified, Set<String> attributes) throws AccessControlException
- {
- if (!_broker.getSecurityManager().authoriseConfiguringBroker(getName(), AccessControlProvider.class, Operation.UPDATE))
- {
- throw new AccessControlException("Setting of AccessControlProvider attributes is denied");
- }
- }
-
public AccessControl getAccessControl()
{
return _accessControl;
diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
index a37c0c7858..5301d2e49d 100644
--- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
+++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java
@@ -22,14 +22,10 @@
package org.apache.qpid.server.security.access.plugins;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import javax.security.auth.Subject;
-import org.apache.qpid.server.exchange.ExchangeImpl;
import org.apache.qpid.server.logging.EventLoggerProvider;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.security.Result;
import org.apache.qpid.server.security.access.ObjectProperties;
import org.apache.qpid.server.security.access.ObjectType;
@@ -65,8 +61,6 @@ public class RuleSetTest extends QpidTestCase
private String _exchangeName = "amq.direct";
private String _exchangeType = "direct";
private Subject _testSubject = TestPrincipalUtils.createTestSubject(TEST_USER);
- private AMQQueue<?> _queue;
- private VirtualHost<?,?,?> _virtualHost;
@Override
public void setUp() throws Exception
@@ -74,11 +68,6 @@ public class RuleSetTest extends QpidTestCase
super.setUp();
_ruleSet = new RuleSet(mock(EventLoggerProvider.class));
-
- _virtualHost = mock(VirtualHost.class);
- _queue = mock(AMQQueue.class);
- when(_queue.getName()).thenReturn(_queueName);
- when(_queue.getParent(VirtualHost.class)).thenReturn(_virtualHost);
}
@Override
@@ -178,11 +167,13 @@ public class RuleSetTest extends QpidTestCase
{
_ruleSet.grant(0, TEST_USER, Permission.ALLOW, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(Property.VIRTUALHOST_NAME, ALLOWED_VH));
- when(_virtualHost.getName()).thenReturn(ALLOWED_VH);
- assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(_queue)));
+ ObjectProperties allowedQueueObjectProperties = new ObjectProperties(_queueName);
+ allowedQueueObjectProperties.put(Property.VIRTUALHOST_NAME, ALLOWED_VH);
+ assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(allowedQueueObjectProperties)));
- when(_virtualHost.getName()).thenReturn(DENIED_VH);
- assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(_queue)));
+ ObjectProperties deniedQueueObjectProperties = new ObjectProperties(_queueName);
+ deniedQueueObjectProperties.put(Property.VIRTUALHOST_NAME, DENIED_VH);
+ assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, deniedQueueObjectProperties));
}
public void testQueueCreateNamedNullRoutingKey()
@@ -197,15 +188,16 @@ public class RuleSetTest extends QpidTestCase
{
_ruleSet.grant(0, TEST_USER, Permission.ALLOW, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(Property.VIRTUALHOST_NAME, ALLOWED_VH));
- ExchangeImpl<?> exchange = mock(ExchangeImpl.class);
- when(exchange.getParent(VirtualHost.class)).thenReturn(_virtualHost);
- when(exchange.getType()).thenReturn(_exchangeType);
- when(_virtualHost.getName()).thenReturn(ALLOWED_VH);
+ ObjectProperties allowedExchangeProperties = new ObjectProperties(_exchangeName);
+ allowedExchangeProperties.put(Property.TYPE, _exchangeType);
+ allowedExchangeProperties.put(Property.VIRTUALHOST_NAME, ALLOWED_VH);
- assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(exchange)));
+ assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, allowedExchangeProperties));
- when(_virtualHost.getName()).thenReturn(DENIED_VH);
- assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(exchange)));
+ ObjectProperties deniedExchangeProperties = new ObjectProperties(_exchangeName);
+ deniedExchangeProperties.put(Property.TYPE, _exchangeType);
+ deniedExchangeProperties.put(Property.VIRTUALHOST_NAME, DENIED_VH);
+ assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, deniedExchangeProperties));
}
public void testExchangeCreate()
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
index 10bf0e761e..e391bd6771 100755
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java
@@ -70,7 +70,7 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol
public ProtocolEngine_0_10(ServerConnection conn,
NetworkConnection network)
{
- super(new Assembler(conn));
+ super(new ServerAssembler(conn));
_connection = conn;
if(network != null)
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java
new file mode 100644
index 0000000000..456c9d36d9
--- /dev/null
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java
@@ -0,0 +1,57 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.protocol.v0_10;
+
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.qpid.transport.network.Assembler;
+import org.apache.qpid.transport.network.NetworkEvent;
+
+public class ServerAssembler extends Assembler
+{
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServerAssembler.class);
+
+
+ private final ServerConnection _connection;
+
+ public ServerAssembler(final ServerConnection connection)
+ {
+ super(connection);
+ _connection = connection;
+ }
+
+ @Override
+ public void received(final NetworkEvent event)
+ {
+ if (!_connection.isIgnoreFutureInput())
+ {
+ super.received(event);
+ }
+ else
+ {
+ LOGGER.debug("Ignored network event " + event + " as connection is ignoring further input ");
+ }
+ }
+
+
+}
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
index a6ed8c452a..2280377fca 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
@@ -97,6 +97,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
private final int _maxMessageSize;
private ServerProtocolEngine _serverProtocolEngine;
+ private boolean _ignoreFutureInput;
public ServerConnection(final long connectionId,
Broker<?> broker,
@@ -734,4 +735,15 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
}
}
+
+ public void closeAndIgnoreFutureInput()
+ {
+ _ignoreFutureInput = true;
+ getSender().close();
+ }
+
+ public boolean isIgnoreFutureInput()
+ {
+ return _ignoreFutureInput;
+ }
}
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
index 6e2a6cac7d..7f646b43b4 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
@@ -250,7 +250,7 @@ public class ServerConnectionDelegate extends ServerDelegate
") above the server's offered limit (" + getChannelMax() +")");
//Due to the error we must forcefully close the connection without negotiation
- sconn.getSender().close();
+ sconn.closeAndIgnoreFutureInput();
return;
}
@@ -261,7 +261,8 @@ public class ServerConnectionDelegate extends ServerDelegate
") above the server's offered limit (" + getFrameMax() +")");
//Due to the error we must forcefully close the connection without negotiation
- sconn.getSender().close();
+ sconn.closeAndIgnoreFutureInput();
+
return;
}
else if(okMaxFrameSize > 0 && okMaxFrameSize < Constant.MIN_MAX_FRAME_SIZE)
@@ -271,7 +272,7 @@ public class ServerConnectionDelegate extends ServerDelegate
") below the minimum permitted size (" + Constant.MIN_MAX_FRAME_SIZE +")");
//Due to the error we must forcefully close the connection without negotiation
- sconn.getSender().close();
+ sconn.closeAndIgnoreFutureInput();
return;
}
else if(okMaxFrameSize == 0)
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index d58ac36ff5..d7b5b00b26 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -920,15 +920,13 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
try
{
markChannelAwaitingCloseOk(channelId);
- closeSession(false); // currently performs the delete actions.
+ closeSession(false);
}
finally
{
try
{
writeFrame(frame);
-
- // add an async job and not
}
finally
{
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
index fbc24ba454..6800b14d65 100755
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java
@@ -493,7 +493,13 @@ public class MessageMetaData_1_0 implements StorableMessageMetaData
public String getType()
{
+ String subject = getSubject();
+ if(subject != null)
+ {
+ return subject;
+ }
+ // Use legacy annotation if present and there was no subject
if(_messageAnnotations == null || _messageAnnotations.get(JMS_TYPE) == null)
{
return null;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
index 19d498e240..93ff1adb63 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
@@ -406,6 +406,13 @@ public class RestServlet extends AbstractServlet
@Override
protected void doPutWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
+ performCreateOrUpdate(request, response);
+ }
+
+ private void performCreateOrUpdate(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
+ {
+ boolean createOrUpdate = "PUT".equalsIgnoreCase(request.getMethod());
+
response.setContentType("application/json");
List<String> names = new ArrayList<String>();
@@ -461,6 +468,13 @@ public class RestServlet extends AbstractServlet
{
if (_hierarchy.length == 0)
{
+ if (!createOrUpdate)
+ {
+ sendErrorResponse(request, response,
+ "Only object creation is allowed with POST requests. Use PUT method to update broker attributes");
+ return;
+ }
+
try
{
doUpdate(getBroker(), providedObject);
@@ -484,7 +498,7 @@ public class RestServlet extends AbstractServlet
Collection<ConfiguredObject>[] objects = new Collection[_hierarchy.length];
if (_hierarchy.length == 1)
{
- createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response);
+ createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response, createOrUpdate);
}
else
{
@@ -547,26 +561,29 @@ public class RestServlet extends AbstractServlet
ConfiguredObject theParent = parents.remove(0);
ConfiguredObject[] otherParents = parents.toArray(new ConfiguredObject[parents.size()]);
- createOrUpdate(providedObject, objClass, theParent, otherParents, request, response);
+ createOrUpdate(providedObject, objClass, theParent, otherParents, request, response, createOrUpdate);
}
-
}
private void createOrUpdate(Map<String, Object> providedObject, Class<? extends ConfiguredObject> objClass,
ConfiguredObject theParent, ConfiguredObject[] otherParents, HttpServletRequest request,
- HttpServletResponse response) throws IOException
+ HttpServletResponse response, boolean createOrUpdate) throws IOException
{
try
{
Collection<? extends ConfiguredObject> existingChildren = theParent.getChildren(objClass);
- for(ConfiguredObject obj: existingChildren)
+
+ if (createOrUpdate)
{
- if((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString()))
- || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents, objClass)))
+ for (ConfiguredObject obj : existingChildren)
{
- doUpdate(obj, providedObject);
- response.setStatus(HttpServletResponse.SC_OK);
- return;
+ if ((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString()))
+ || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents, objClass)))
+ {
+ doUpdate(obj, providedObject);
+ response.setStatus(HttpServletResponse.SC_OK);
+ return;
+ }
}
}
@@ -626,11 +643,12 @@ public class RestServlet extends AbstractServlet
}
else
{
+ String message = e.getMessage();
if (e instanceof IllegalConfigurationException || e instanceof IllegalArgumentException)
{
if (LOGGER.isDebugEnabled())
{
- LOGGER.debug(e.getClass().getSimpleName() + " processing request : " + e.getMessage());
+ LOGGER.debug(e.getClass().getSimpleName() + " processing request : " + message);
}
else if (LOGGER.isTraceEnabled())
{
@@ -642,17 +660,22 @@ public class RestServlet extends AbstractServlet
LOGGER.warn("Unexpected exception processing request ", e);
}
- response.setStatus(HttpServletResponse.SC_CONFLICT);
+ sendErrorResponse(request, response, message);
- response.setContentType("application/json");
- response.setCharacterEncoding("UTF-8");
+ }
+ }
- Writer out = getOutputWriter(request, response);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
- mapper.writeValue(out, Collections.singletonMap("errorMessage", e.getMessage()));
+ private void sendErrorResponse(HttpServletRequest request, HttpServletResponse response, String message) throws IOException
+ {
+ response.setStatus(HttpServletResponse.SC_CONFLICT);
- }
+ response.setContentType("application/json");
+ response.setCharacterEncoding("UTF-8");
+
+ Writer out = getOutputWriter(request, response);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
+ mapper.writeValue(out, Collections.singletonMap("errorMessage", message));
}
@Override
@@ -678,6 +701,12 @@ public class RestServlet extends AbstractServlet
}
}
+ @Override
+ protected void doPostWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+ {
+ performCreateOrUpdate(request, response);
+ }
+
private void setCachingHeadersOnResponse(HttpServletResponse response)
{
response.setHeader("Cache-Control","no-cache");
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java
index b782022986..11876f115e 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java
@@ -65,16 +65,6 @@ public class UserPreferencesServlet extends AbstractServlet
private void getUserPreferences(String authenticationProviderName, String userId, HttpServletRequest request, HttpServletResponse response)
throws IOException
{
- try
- {
- assertUserPreferencesOperationAuthorized(userId);
- }
- catch (SecurityException e)
- {
- response.sendError(HttpServletResponse.SC_FORBIDDEN, "Viewing of preferences is not allowed");
- return;
- }
-
Map<String, Object> preferences = null;
PreferencesProvider preferencesProvider = getPreferencesProvider(authenticationProviderName);
if (preferencesProvider == null)
@@ -82,9 +72,17 @@ public class UserPreferencesServlet extends AbstractServlet
response.sendError(HttpServletResponse.SC_NOT_FOUND, "Preferences provider is not configured");
return;
}
- preferences = preferencesProvider.getPreferences(userId);
+ try
+ {
+ preferences = preferencesProvider.getPreferences(userId);
- sendJsonResponse(preferences, request, response);
+ sendJsonResponse(preferences, request, response);
+ }
+ catch (SecurityException e)
+ {
+ response.sendError(HttpServletResponse.SC_FORBIDDEN, "Viewing of preferences is not allowed");
+ return;
+ }
}
private void getUserList(String[] pathElements, HttpServletRequest request, HttpServletResponse response) throws IOException
@@ -177,16 +175,6 @@ public class UserPreferencesServlet extends AbstractServlet
String userId = elements[1];
- try
- {
- assertUserPreferencesOperationAuthorized(userId);
- }
- catch (SecurityException e)
- {
- response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed");
- return;
- }
-
String providerName = elements[0];
Set<String> users = providerUsers.get(providerName);
@@ -216,7 +204,15 @@ public class UserPreferencesServlet extends AbstractServlet
if (preferencesProvider != null && !usersToDelete.isEmpty())
{
String[] users = usersToDelete.toArray(new String[usersToDelete.size()]);
- preferencesProvider.deletePreferences(users);
+ try
+ {
+ preferencesProvider.deletePreferences(users);
+ }
+ catch (SecurityException e)
+ {
+ response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed");
+ return;
+ }
}
}
}
@@ -237,8 +233,4 @@ public class UserPreferencesServlet extends AbstractServlet
return provider;
}
- private void assertUserPreferencesOperationAuthorized(String userId)
- {
- getBroker().getSecurityManager().authoriseUserOperation(Operation.UPDATE, userId);
- }
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
index 1520cb8f7a..1a9ceb7419 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js
@@ -68,8 +68,12 @@ define(["dojo/_base/xhr",
},
implementsManagedInterface: function (category, type, managedInterfaceName)
{
- var managedInterfaces = this.getMetaData(category, type).managedInterfaces;
- return array.indexOf(managedInterfaces, managedInterfaceName) >= 0 ;
+ var md = this.getMetaData(category, type);
+ if (md && md.managedInterfaces)
+ {
+ return array.indexOf(md.managedInterfaces, managedInterfaceName) >= 0 ;
+ }
+ return false;
},
validChildTypes: function (category, type, childCategory)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
index 746eb4bbbc..5bf5574347 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
@@ -791,5 +791,52 @@ define(["dojo/_base/xhr",
on(window, "resize", resize);
}
+ util.submit = function(method, resourceUrl, data, successAction, failureAction)
+ {
+ var result = {success: true, failureReason: null};
+ var xhrArguments = {
+ url: resourceUrl,
+ sync: true,
+ handleAs: "json",
+ headers: { "Content-Type": "application/json"},
+ load: function(x) {
+ result.success = true;
+ result.data = x;
+ if (successAction)
+ {
+ successAction(x);
+ }
+ },
+ error: function(error) {
+ result.success = false;
+ result.failureReason = error;
+ if (failureAction)
+ {
+ failureAction(error);
+ }
+ else
+ {
+ util.xhrErrorHandler(error);
+ }
+ }
+ }
+ if (data && method != "del")
+ {
+ xhrArguments[method + "Data"] = json.stringify(data);
+ }
+ xhr[method](xhrArguments);
+ return result;
+ }
+
+ util.post = function(resourceUrl, data, successAction, failureAction)
+ {
+ return util.submit("post", resourceUrl, data, successAction, failureAction)
+ }
+
+ util.put = function(resourceUrl, data, successAction, failureAction)
+ {
+ return util.submit("put", resourceUrl, data, successAction, failureAction)
+ }
+
return util;
});
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
index af8f1fc2fb..baafc6f71d 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js
@@ -119,12 +119,17 @@ define(["dojo/_base/xhr",
if (widget instanceof dijit.form.FilteringSelect || widget instanceof dojox.form.CheckedMultiSelect)
{
- var widgetValue = dataValue ? dataValue : defaultValue;
+ var widgetValue = dataValue == null ? defaultValue : dataValue;
if (widgetValue)
{
widget.set("value", widgetValue);
}
}
+ else if (widget instanceof dijit.form.CheckBox)
+ {
+ var widgetValue = dataValue == null ? (defaultValue == "true") : dataValue;
+ widget.set("checked", widgetValue ? true : false);
+ }
else
{
if (dataValue)
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
index 83bf23f669..a8b2b60a75 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
@@ -99,30 +99,11 @@ define(["dojo/_base/lang",
{
if (this.accessControlProviderForm.validate())
{
- var success = false,failureReason=null;
-
var accessControlProviderData = util.getFormWidgetValues(this.accessControlProviderForm, this.initialData);
var encodedAccessControlProviderName = encodeURIComponent(this.accessControlProviderName.value);
-
- xhr.put(
- {
- url: "api/latest/accesscontrolprovider/" + encodedAccessControlProviderName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(accessControlProviderData),
- load: function(x) {success = true; },
- error: function(error) {success = false; failureReason = error;}
- });
-
- if (success == true)
- {
- this.dialog.hide();
- }
- else
- {
- util.xhrErrorHandler(failureReason);
- }
+ var that = this;
+ util.post("api/latest/accesscontrolprovider/" + encodedAccessControlProviderName,
+ accessControlProviderData, function(x){that.dialog.hide();});
}
else
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
index ccae89d6c1..d367537731 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
@@ -155,31 +155,21 @@ define(["dojo/_base/xhr",
var authenticationProviderData = util.getFormWidgetValues(this.authenticationProviderForm, this.initialData);
var encodedAuthenticationProviderName = encodeURIComponent(this.authenticationProviderName.value);
- xhr.put({
- url: "api/latest/authenticationprovider/" + encodedAuthenticationProviderName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(authenticationProviderData),
- load: function(x) {success = true; },
- error: function(error) {success = false; failureReason = error;}
- });
-
- if(success === true)
- {
- var preferencesProviderResult = this.preferencesProviderForm.submit(encodedAuthenticationProviderName);
- success = preferencesProviderResult.success;
- failureReason = preferencesProviderResult.failureReason;
- }
+ var that = this;
- if (success == true)
- {
- this.dialog.hide();
- }
- else
- {
- util.xhrErrorHandler(failureReason);
- }
+ var methodName = this.initialData ? "put" : "post";
+ util[methodName]("api/latest/authenticationprovider/" + encodedAuthenticationProviderName, authenticationProviderData,
+ function(x){
+ var preferencesProviderResult = that.preferencesProviderForm.submit(encodedAuthenticationProviderName);
+ if (preferencesProviderResult.success == true)
+ {
+ that.dialog.hide();
+ }
+ else
+ {
+ util.xhrErrorHandler(preferencesProviderResult.failureReason);
+ }
+ });
}
else
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
index 56950c88b0..8257b7e54c 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
@@ -308,30 +308,13 @@ define(["dojo/_base/connect",
var newBinding = convertToBinding(theForm.getValues());
var that = this;
-
- xhr.put({url: "api/latest/binding/"+encodeURIComponent(addBinding.vhostnode)
- +"/"+encodeURIComponent(addBinding.vhost)
- +"/"+encodeURIComponent(newBinding.exchange)
- +"/"+encodeURIComponent(newBinding.queue)
- +"/"+encodeURIComponent(newBinding.name),
- sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newBinding),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(this.success === true)
- {
- registry.byId("addBinding").hide();
- }
- else
- {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ var url = "api/latest/binding/"+encodeURIComponent(addBinding.vhostnode)
+ + "/"+encodeURIComponent(addBinding.vhost)
+ + "/"+encodeURIComponent(newBinding.exchange)
+ + "/"+encodeURIComponent(newBinding.queue)
+ + "/"+encodeURIComponent(newBinding.name);
+ util.post(url, newBinding, function(x){registry.byId("addBinding").hide();});
return false;
-
-
}else{
alert('Form contains invalid data. Please correct first');
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
index c7f281b8dc..ca43eca5d3 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
@@ -110,23 +110,10 @@ define(["dojo/_base/xhr",
var newExchange = convertToExchange(theForm.getValues());
var that = this;
- xhr.put({url: "api/latest/exchange/"+encodeURIComponent(addExchange.vhostnode) +
- "/"+encodeURIComponent(addExchange.vhost) +
- "/"+encodeURIComponent(newExchange.name), sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newExchange),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(this.success === true)
- {
- registry.byId("addExchange").hide();
- }
- else
- {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ util.post("api/latest/exchange/" + encodeURIComponent(addExchange.vhostnode)
+ + "/" + encodeURIComponent(addExchange.vhost)
+ + "/" + encodeURIComponent(newExchange.name),
+ newExchange, function(x){ registry.byId("addExchange").hide(); });
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
index 81ce40ebe9..f658a8ec3b 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
@@ -124,33 +124,9 @@ define([
var groupProviderData = util.getFormWidgetValues(this.groupProviderForm, this.initialData);
var encodedName = encodeURIComponent(this.groupProviderName.value);
- var jsonString = json.stringify(groupProviderData);
-
- try {
- xhr.put(
- {
- url: "api/latest/groupprovider/" + encodedName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: jsonString,
- load: function(x) {success = true; },
- error: function(error) {success = false; failureReason = error;}
- });
- }
- catch (e)
- {
- console.warn(e);
- }
-
- if (success == true)
- {
- this.dialog.hide();
- }
- else
- {
- util.xhrErrorHandler(failureReason);
- }
+ var that = this;
+ var method = this.initialData ? "put" : "post";
+ util[method]("api/latest/groupprovider/" + encodedName, groupProviderData, function(x){that.dialog.hide();});
}
else
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
index befb5df9c1..1069e2300b 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
@@ -267,33 +267,9 @@ define(["dojo/_base/xhr",
alert("A trust store must be selected when requesting client certificates.");
return false;
}
- var that = this;
-
- xhr.put({url: "api/latest/port/" + encodeURIComponent(newPort.name), sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newPort),
- load: function (x)
- {
- that.success = true;
- },
- error: function (error)
- {
- that.success = false;
- that.failureReason = error;
- }});
-
- if (this.success === true)
- {
- registry.byId("addPort").hide();
- }
- else
- {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ var method = registry.byId("formAddPort.name").get("disabled") ? "put" : "post";
+ util[method]("api/latest/port/" + encodeURIComponent(newPort.name), newPort, function(x){registry.byId("addPort").hide()});
return false;
-
-
} else
{
alert('Form contains invalid data. Please correct first');
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
index 236efb2efa..da7879d671 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
@@ -149,25 +149,9 @@ define(["dojo/_base/xhr",
if(theForm.validate()){
var newQueue = convertToQueue(theForm.getValues());
- var that = this;
-
- xhr.put({url: "api/latest/queue/"+encodeURIComponent(addQueue.vhostnode)
- +"/"+encodeURIComponent(addQueue.vhost)
- +"/"+encodeURIComponent(newQueue.name), sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newQueue),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(this.success === true)
- {
- registry.byId("addQueue").hide();
- }
- else
- {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ util.post("api/latest/queue/" + encodeURIComponent(addQueue.vhostnode)
+ + "/"+encodeURIComponent(addQueue.vhost) + "/" + encodeURIComponent(newQueue.name),
+ newQueue, function(x){registry.byId("addQueue").hide();});
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
index caf14d0cc8..ff672e92be 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
@@ -19,7 +19,6 @@
*
*/
define(["dojo/_base/lang",
- "dojo/_base/xhr",
"dojo/dom",
"dojo/dom-construct",
"dijit/registry",
@@ -45,7 +44,7 @@ define(["dojo/_base/lang",
"dijit/layout/ContentPane",
"dojox/layout/TableContainer",
"dojo/domReady!"],
- function (lang, xhr, dom, construct, registry, parser, memory, array, event, json, util, metadata, template)
+ function (lang, dom, construct, registry, parser, memory, array, event, json, util, metadata, template)
{
var addStore =
{
@@ -132,33 +131,9 @@ define(["dojo/_base/lang",
var storeData = util.getFormWidgetValues(this.storeForm, this.initialData);
var encodedStoreName = encodeURIComponent(this.storeName.value);
var encodedCategory = encodeURIComponent(this.category.toLowerCase());
- var jsonString = json.stringify(storeData);
-
- try {
- xhr.put(
- {
- url: "api/latest/" + encodedCategory + "/" + encodedStoreName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: jsonString,
- load: function(x) {success = true; },
- error: function(error) {success = false; failureReason = error;}
- });
- }
- catch (e)
- {
- console.warn(e);
- }
-
- if (success == true)
- {
- this.dialog.hide();
- }
- else
- {
- util.xhrErrorHandler(failureReason);
- }
+ var that = this;
+ var method = this.effectiveData ? "put" : "post";
+ util[method]("api/latest/" + encodedCategory + "/" + encodedStoreName, storeData, function(x){that.dialog.hide();});
}
else
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
index 21927ea0e5..2cba022482 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
@@ -18,7 +18,7 @@
* under the License.
*
*/
-define(["dojo/_base/xhr",
+define([
"dojo/_base/event",
"dojo/_base/lang",
"dojo/_base/array",
@@ -48,7 +48,7 @@ define(["dojo/_base/xhr",
"dojox/validate/us",
"dojox/validate/web",
"dojo/domReady!"],
- function (xhr, event, lang, array, dom, domConstruct, json, parser, Memory, win, on, fobject, registry, Dialog, Button, FilteringSelect, properties, util, metadata, template)
+ function (event, lang, array, dom, domConstruct, json, parser, Memory, win, on, fobject, registry, Dialog, Button, FilteringSelect, properties, util, metadata, template)
{
var addVirtualHostNodeAndVirtualHost =
@@ -339,27 +339,9 @@ define(["dojo/_base/xhr",
return;
}
- var success = false,failureReason=null;
-
+ var that = this;
var encodedVirtualHostNodeName = encodeURIComponent(virtualHostNodeData.name);
- xhr.put({
- url: "api/latest/virtualhostnode/" + encodedVirtualHostNodeName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(virtualHostNodeData),
- load: function(x) {success = true; },
- error: function(error) {success = false; failureReason = error;}
- });
-
- if (success == true)
- {
- this.dialog.hide();
- }
- else
- {
- util.xhrErrorHandler(failureReason);
- }
+ util.post("api/latest/virtualhostnode/" + encodedVirtualHostNodeName, virtualHostNodeData, function(x){that.dialog.hide();});
},
_getValues: function (form)
{
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js
index e6f2249f65..87025adfae 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js
@@ -202,19 +202,7 @@ define(["dojo/_base/xhr",
var url = "api/latest/user/"+encodeURIComponent(addUser.authProvider) +
"/"+encodeURIComponent(newUser.name);
-
- xhr.put({url: url, sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newUser),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(that.success === true) {
- registry.byId("addUser").hide();
- } else {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ util.post(url, newUser, function(x){registry.byId("addUser").hide();});
return false;
@@ -260,18 +248,7 @@ define(["dojo/_base/xhr",
var url = "api/latest/user/"+encodeURIComponent(setPassword.authProvider) +
"/"+encodeURIComponent(newUser.name);
- xhr.put({url: url, sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newUser),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(that.success === true) {
- registry.byId("setPassword").hide();
- } else {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ util.put(url, newUser, function(x){registry.byId("setPassword").hide();});
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js
index 0a8e6a2e11..baa08d2309 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js
@@ -71,22 +71,11 @@ define(["dojo/_base/xhr",
var newGroupMember = convertToGroupMember(theForm.getValues());
var that = this;
- xhr.put({url: "api/latest/groupmember/"+encodeURIComponent(addGroupMember.groupProvider) +
- "/" + encodeURIComponent(addGroupMember.group) + "/" + encodeURIComponent(newGroupMember.name), sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newGroupMember),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(this.success === true)
- {
- registry.byId("addGroupMember").hide();
- }
- else
- {
- util.xhrErrorHandler(this.failureReason);
- }
+ var url = "api/latest/groupmember/"+encodeURIComponent(addGroupMember.groupProvider) +
+ "/" + encodeURIComponent(addGroupMember.group) +
+ "/" + encodeURIComponent(newGroupMember.name);
+ util.post(url, newGroupMember, function(x){registry.byId("addGroupMember").hide();});
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
index 5788fad8af..4182b580b7 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
@@ -177,18 +177,7 @@ define(["dojo/_base/xhr",
var url = "api/latest/group/"+encodeURIComponent(addGroup.groupProvider) +
"/"+encodeURIComponent(newGroup.name);
- xhr.put({url: url, sync: true, handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.toJson(newGroup),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}});
-
- if(that.success === true) {
- registry.byId("addGroup").hide();
- } else {
- util.xhrErrorHandler(this.failureReason);
- }
-
+ util.post(url, newGroup, function(x){registry.byId("addGroup").hide();});
return false;
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js
index ef8273328b..099a75837b 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js
@@ -87,18 +87,26 @@ function (util, metadata, xhr, declare, array, domConstruct, win, query, json, _
{
var preferencesProviderData = util.getFormWidgetValues(this.preferencesProviderForm, this.data)
var encodedPreferencesProviderName = encodeURIComponent(this.preferencesProviderNameWidget.get("value"));
- var success = false;
- var failureReason = null;
- xhr.put({
- url: "api/latest/preferencesprovider/" + encodedAuthenticationProviderName + "/" + encodedPreferencesProviderName,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(preferencesProviderData),
- load: function (x) { success = true; },
- error: function (error) { success = false; failureReason = error; }
- });
- return { success: success, failureReason: failureReason };
+ var url = "api/latest/preferencesprovider/" + encodedAuthenticationProviderName + "/" + encodedPreferencesProviderName;
+ if (this.data)
+ {
+ var success = false;
+ var failureReason = null;
+ xhr.put({
+ url: url,
+ sync: true,
+ handleAs: "json",
+ headers: { "Content-Type": "application/json"},
+ putData: json.stringify(preferencesProviderData),
+ load: function (x) { success = true; },
+ error: function (error) { success = false; failureReason = error; }
+ });
+ return { success: success, failureReason: failureReason };
+ }
+ else
+ {
+ return util.post(url, preferencesProviderData);
+ }
}
return { success: true, failureReason: null };
},
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
index 3b3d6b9cd2..bdf44e54da 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
@@ -216,7 +216,7 @@ public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean<Vi
try
{
- exchange.deleteWithChecks();
+ exchange.delete();
}
catch(RequiredExchangeException e)
{
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java
index 5a804e7605..c8c27d386c 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java
@@ -201,7 +201,7 @@ public class VirtualHostManagerMBeanTest extends TestCase
_virtualHostManagerMBean.unregisterExchange(EXCHANGE_1_NAME);
- verify(mockExchange).deleteWithChecks();
+ verify(mockExchange).delete();
}
public void testUnregisterExchangeWhenExchangeDoesNotExist() throws Exception