You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/04/03 13:50:36 UTC
svn commit: r1463933 - in /qpid/trunk/qpid/java:
broker-plugins/management-http/src/main/java/resources/
broker/src/main/java/org/apache/qpid/server/model/adapter/
systests/src/main/java/org/apache/qpid/systest/rest/
Author: orudyy
Date: Wed Apr 3 11:50:36 2013
New Revision: 1463933
URL: http://svn.apache.org/r1463933
Log:
QPID-4695: Add validation of configured object names and IDs
Modified:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHost.html
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html Wed Apr 3 11:50:36 2013
@@ -25,7 +25,7 @@
<tr>
<td class="tableContainer-labelCell" style="width: 300px;">Name*:</td>
<td class="tableContainer-valueCell"><input type="text" required="true" name="name"
- id="formAddAuthenticationProvider.name" placeholder="Name"
+ id="formAddAuthenticationProvider.name" placeholder="Name" regexp="^[\x20-\x2e\x30-\x7F]{1,255}$"
dojoType="dijit.form.ValidationTextBox" missingMessage="A name must be supplied" /></div></td>
</tr>
</table>
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addExchange.html Wed Apr 3 11:50:36 2013
@@ -26,7 +26,7 @@
<td valign="top"><strong>Exchange Name*: </strong></td>
<td><input type="text" required="true" name="name" id="formAddExchange.name" placeholder="Exchange Name"
dojoType="dijit.form.ValidationTextBox" missingMessage="A name must be supplied"
- data-dojo-props="regExp:'^(?!qpid\.|amq\.|\<\<default\>\>).*$', invalidMessage:'Reserved exchange name!'"/></td>
+ data-dojo-props="regExp:'^(?!qpid\.|amq\.|\<\<default\>\>)[\x20-\x2e\x30-\x7F]{1,255}$', invalidMessage:'Illegal or reserved exchange name!'"/></td>
</tr>
<tr>
<td valign="top"><strong>Durable? </strong></td>
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html Wed Apr 3 11:50:36 2013
@@ -25,7 +25,7 @@
<div id="formAddPort:fields">
<input type="text" required="true" name="name" id="formAddPort.name" placeholder="Name"
data-dojo-props="label: 'Name*:'" dojoType="dijit.form.ValidationTextBox"
- missingMessage="A name must be supplied" />
+ missingMessage="A name must be supplied" regexp="^[\x20-\x2e\x30-\x7F]{1,255}$"/>
<input data-dojo-type="dijit.form.NumberSpinner" id="formAddPort.port" required="true" data-dojo-props="label: 'Port Number*:'"
name="port" smallDelta="1" constraints="{min:1,max:65535,places:0, pattern: '#####'}"
missingMessage="A port number must be supplied" />
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html Wed Apr 3 11:50:36 2013
@@ -25,7 +25,7 @@
<tr>
<td valign="top"><strong>Queue Name*: </strong></td>
<td><input type="text" required="true" name="name" id="formAddQueue.name" placeholder="Queue Name"
- dojoType="dijit.form.ValidationTextBox" missingMessage="A name must be supplied" /></td>
+ dojoType="dijit.form.ValidationTextBox" missingMessage="A name must be supplied" regexp="^[\x20-\x2e\x30-\x7F]{1,255}$"/></td>
</tr>
<tr>
<td valign="top"><strong>Durable? </strong></td>
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHost.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHost.html?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHost.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addVirtualHost.html Wed Apr 3 11:50:36 2013
@@ -27,7 +27,7 @@
<td class="tableContainer-valueCell">
<input type="text" required="true" name="name" id="formAddVirtualHost.name"
placeholder="Virtual Host Name" dojoType="dijit.form.ValidationTextBox"
- missingMessage="A name must be supplied" />
+ missingMessage="A name must be supplied" regexp="^[\x20-\x2e\x30-\x7F]{1,255}$"/>
</td>
</tr>
</table>
Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java Wed Apr 3 11:50:36 2013
@@ -32,6 +32,7 @@ import org.apache.qpid.server.model.Conf
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.IllegalStateTransitionException;
import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.ChangeAttributesTask;
import org.apache.qpid.server.configuration.updater.ChangeStateTask;
import org.apache.qpid.server.configuration.updater.CreateChildTask;
@@ -40,6 +41,7 @@ import org.apache.qpid.server.configurat
abstract class AbstractAdapter implements ConfiguredObject
{
+ private static final Object ID = "id";
private final Map<String,Object> _attributes = new HashMap<String, Object>();
private final Map<Class<? extends ConfiguredObject>, ConfiguredObject> _parents =
new HashMap<Class<? extends ConfiguredObject>, ConfiguredObject>();
@@ -347,6 +349,15 @@ abstract class AbstractAdapter implement
protected void changeAttributes(final Map<String, Object> attributes)
{
+ if (attributes.containsKey(ID))
+ {
+ UUID id = getId();
+ Object idAttributeValue = attributes.get(ID);
+ if (idAttributeValue != null && !idAttributeValue.equals(id))
+ {
+ throw new IllegalConfigurationException("Cannot change existing configured object id");
+ }
+ }
Collection<String> names = getAttributeNames();
for (String name : names)
{
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java?rev=1463933&r1=1463932&r2=1463933&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java Wed Apr 3 11:50:36 2013
@@ -24,6 +24,7 @@ import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.LifetimePolicy;
@@ -90,6 +91,22 @@ public class AuthenticationProviderRestT
assertProvider(false, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE, provider);
}
+ public void testUpdateAuthenticationProviderIdFails() throws Exception
+ {
+ String providerName = "test-provider";
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(AuthenticationProvider.NAME, providerName);
+ attributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE);
+
+ int responseCode = getRestTestHelper().submitRequest("/rest/authenticationprovider/" + providerName, "PUT", attributes);
+ assertEquals("Unexpected response code", 201, responseCode);
+
+ attributes.put(AuthenticationProvider.ID, UUID.randomUUID());
+
+ responseCode = getRestTestHelper().submitRequest("/rest/authenticationprovider/" + providerName, "PUT", attributes);
+ assertEquals("Update with new ID should fail", 409, responseCode);
+ }
+
public void testDeleteOfDefaultAuthenticationProviderFails() throws Exception
{
String providerName = TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org