You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by vv...@apache.org on 2014/10/20 09:48:07 UTC

svn commit: r1633064 - in /felix/trunk/webconsole/src/main: java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java resources/res/ui/config.js

Author: vvalchev
Date: Mon Oct 20 07:48:07 2014
New Revision: 1633064

URL: http://svn.apache.org/r1633064
Log:
Fixed FELIX-3817 : Form parameters might clash with configuration parameters
https://issues.apache.org/jira/browse/FELIX-3817

Modified:
    felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java
    felix/trunk/webconsole/src/main/resources/res/ui/config.js

Modified: felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java?rev=1633064&r1=1633063&r2=1633064&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java (original)
+++ felix/trunk/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigAdminSupport.java Mon Oct 20 07:48:07 2014
@@ -186,6 +186,12 @@ class ConfigAdminSupport
             while ( propTokens.hasMoreTokens() )
             {
                 String propName = propTokens.nextToken();
+                String paramName = "action".equals(propName) //$NON-NLS-1$
+                    || ConfigManager.ACTION_DELETE.equals(propName)
+                    || ConfigManager.ACTION_APPLY.equals(propName)
+                    || ConfigManager.PROPERTY_LIST.equals(propName) 
+                    ? '$' + propName : propName;
+                
                 PropertyDescriptor ad = (PropertyDescriptor) adMap.get( propName );
 
                 // try to derive from current value
@@ -199,7 +205,7 @@ class ConfigAdminSupport
                 if ( ad == null
                     || ( ad.getCardinality() == 0 && ( attributeType == AttributeDefinition.STRING || attributeType == MetaTypeServiceSupport.ATTRIBUTE_TYPE_PASSWORD ) ) )
                 {
-                    String prop = request.getParameter( propName );
+                    String prop = request.getParameter( paramName );
                     if ( prop != null
                         && ( attributeType != MetaTypeSupport.ATTRIBUTE_TYPE_PASSWORD || !MetaTypeSupport.PASSWORD_PLACEHOLDER_VALUE.equals( prop ) ) )
                     {
@@ -209,7 +215,7 @@ class ConfigAdminSupport
                 else if ( ad.getCardinality() == 0 )
                 {
                     // scalar of non-string
-                    String prop = request.getParameter( propName );
+                    String prop = request.getParameter( paramName );
                     if ( prop != null )
                     {
                         try
@@ -227,7 +233,7 @@ class ConfigAdminSupport
                     // array or vector of any type
                     Vector vec = new Vector();
 
-                    String[] properties = request.getParameterValues( propName );
+                    String[] properties = request.getParameterValues( paramName );
                     if ( properties != null )
                     {
                         if ( attributeType == MetaTypeSupport.ATTRIBUTE_TYPE_PASSWORD )

Modified: felix/trunk/webconsole/src/main/resources/res/ui/config.js
URL: http://svn.apache.org/viewvc/felix/trunk/webconsole/src/main/resources/res/ui/config.js?rev=1633064&r1=1633063&r2=1633064&view=diff
==============================================================================
--- felix/trunk/webconsole/src/main/resources/res/ui/config.js (original)
+++ felix/trunk/webconsole/src/main/resources/res/ui/config.js Mon Oct 20 07:48:07 2014
@@ -151,7 +151,8 @@ function printForm( /* Element */ parent
         if (attr.value != undefined)
         {
             // check is required to also handle empty strings, 0 and false
-            tdEl.appendChild( createInput( prop, attr.value, attr.type, '99%' ) );
+            var inputName = (prop == "action" || prop == "propertylist" || prop == "apply" || prop == "delete") ? '$' + prop : prop;
+            tdEl.appendChild( createInput( inputName, attr.value, attr.type, '99%' ) );
             tdEl.appendChild( createElement( "br" ) );
         }
         else if (typeof(attr.type) == 'object')