Author: indika
Date: Mon Dec 10 01:03:23 2007
New Revision: 10790

Log:

add  alphanumeric name validation, add handling XML special chars ex: 
",',>,<,& 


Modified:
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/commons.js
   trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/config.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/endpoints.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/entries.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/esbregistry.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/filter_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/header_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/property.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/switch_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/throttle_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/validate_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/xquery_mediator.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/proxyservices.js
   
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/sequences.js

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/commons.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/commons.js  
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/commons.js  
    Mon Dec 10 01:03:23 2007
@@ -22,8 +22,21 @@
 }
 
 function namevalidate(namestring) {
-
-    if (namestring.indexOf("'") == -1 && namestring.indexOf(" ") == -1 && 
namestring.indexOf("&") == -1 && namestring.indexOf('"') == -1) {
+    if (namestring != null && namestring != "") {
+        for (var j = 0; j < namestring.length; j++)
+        {
+            var ch = namestring.charAt(j);
+            var code = ch.charCodeAt(0);
+            if ((code > 47 && code < 59) // number
+                || (code > 64 && code < 91)// capital 
+                || (code > 96 && code < 123)// simple
+                || code == 95) // underscore
+            {
+            }
+            else {
+                return false;
+            }
+        }
         return true;
     } else {
         return false;
@@ -224,6 +237,44 @@
     return ltrim(rtrim(stringValue));
 }
 
+function convertToValidXMlString(originalStr) {
+    //Replace all the correct code with invalid code
+    var convertedStr = relpaceString(originalStr, "&amp;", "&");
+    convertedStr = relpaceString(convertedStr, "&lt;", "<");
+    convertedStr = relpaceString(convertedStr, "&gt;", ">");
+    convertedStr = relpaceString(convertedStr, "&quot;", '"');
+    convertedStr = relpaceString(convertedStr, "&#39;", "'");
+
+    //Replace all the invalid code with correct code
+    convertedStr = relpaceString(convertedStr, "&", "&amp;");
+    convertedStr = relpaceString(convertedStr, "<", "&lt;");
+    convertedStr = relpaceString(convertedStr, ">", "&gt;");
+    convertedStr = relpaceString(convertedStr, '"', "&quot;");
+    convertedStr = relpaceString(convertedStr, "'", "&#39;");
+    return convertedStr;
+
+}
+
+function relpaceString(originalStr, originalword, relaceword) {
+    if (originalStr == undefined || originalStr == null) {
+        return;
+    }
+    var splitedarryone = originalStr.split(originalword)  ;
+    var newStr = "";
+    var limit = splitedarryone.length;
+    for (var i = 0; i < limit; i++) {
+        if (i == limit - 1) {
+            newStr += splitedarryone[i];
+        } else {
+            newStr += splitedarryone[i] + relaceword;
+        }
+    }
+    if (newStr == "" || newStr == undefined || newStr == null) {
+        newStr = originalStr;
+    }
+    return newStr;
+}
+
 function esbwarning(message, type) {
 
     var handleOK = function() {

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/config.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/config.js   
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/config.js   
    Mon Dec 10 01:03:23 2007
@@ -38,25 +38,6 @@
     document.getElementById("rawConfig").style.cursor = "text";
 }
 
-function relpaceString(originalStr, originalword, relaceword) {
-    if (originalStr == undefined || originalStr == null) {
-        return;
-    }
-    var splitedarryone = originalStr.split(originalword)  ;
-    var newStr = "";
-    var limit = splitedarryone.length;
-    for (var i = 0; i < limit; i++) {
-        if (i == limit - 1) {
-            newStr += splitedarryone[i];
-        } else {
-            newStr += splitedarryone[i] + relaceword;
-        }
-    }
-    if (newStr == "" || newStr == undefined || newStr == null) {
-        newStr = originalStr;
-    }
-    return newStr;
-}
 function saveConfigurationToDisk() {
     var theString = document.getElementById("rawConfig").value;
     var isXml = isValidXml(theString);

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/endpoints.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/endpoints.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/endpoints.js
    Mon Dec 10 01:03:23 2007
@@ -604,7 +604,10 @@
     } else if ("FailOver" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
+            if (!namevalidate(name.value)) {
+                esbwarning("The value for the name contains invalid 
characters. Only, alphanumeric or underscore characters are allowed. ", 
TYPE_INFO);
+            }
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
                 endpointXML = '<syn:endpoint name="' + name.value + '" 
xmlns:syn="' + SYNAPSE_NS + '">' + childepstr +
@@ -615,7 +618,10 @@
     } else if ("LoadBalance" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
+            if (!namevalidate(name.value)) {
+                esbwarning("The value for the name contains invalid 
characters. Only, alphanumeric or underscore characters are allowed. ", 
TYPE_INFO);
+            }
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
                 endpointXML = '<syn:endpoint name="' + name.value + '" 
xmlns:syn="' + SYNAPSE_NS + '">' + childepstr + '</syn:endpoint>'
@@ -928,7 +934,7 @@
     var uri = document.getElementById(("endpoint_address" + id).toString());
     if (uri != null && uri.value != "") {
         var body_xml = '<syn:endpoint xmlns:syn="' + SYNAPSE_NS + '" >' +
-                       '<syn:address uri="' + uri.value + '"';
+                       '<syn:address uri="' + 
convertToValidXMlString(trim(uri.value)) + '"';
         var format = document.getElementById("endpoint_format" + 
id.toString());
         var optimize = document.getElementById("endpoint_optimize" + 
id.toString());
         var format_index = null;
@@ -1036,7 +1042,7 @@
         }
         body_xml += '</syn:address>' +
                     '</syn:endpoint>';
-        return relpaceString(relpaceString(trim(body_xml), "&amp;", "&"), "&", 
"&amp;");
+        return trim(body_xml);
 
     } else {
         if (save_state = true) {
@@ -1219,7 +1225,7 @@
     }
     body_xml += '</syn:wsdl>' +
                 '</syn:endpoint>';
-    return relpaceString(relpaceString(trim(body_xml), "&amp;", "&"), "&", 
"&amp;");
+    return trim(body_xml);
 }
 function addSaveEndPoint(type) {
     state = 1;
@@ -1251,7 +1257,12 @@
     } else if ("FailOver" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
+            if (!namevalidate(name.value)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return;
+            }
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
                 var body_xml = '<ns1:addEndpoint 
xmlns:ns1="http://org.apache.synapse/xsd"; xmlns:syn="' + SYNAPSE_NS + '">' +
@@ -1268,7 +1279,12 @@
     } else if ("LoadBalance" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
+            if (!namevalidate(name.value)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return;
+            }
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
                 var body_xml = '<ns1:addEndpoint 
xmlns:ns1="http://org.apache.synapse/xsd"; xmlns:syn="' + SYNAPSE_NS + '">' +
@@ -1287,10 +1303,16 @@
 function getXmlForAddressEndpoint() {
     var name = document.getElementById("endpoint_name0");
     var uri = document.getElementById("endpoint_address0");
-    if (name != null && name.value != "" && namevalidate(name.value)) {
+    if (name != null && name.value != "") {
+        var value = trim(name.value);
+        if (!namevalidate(value)) {
+            esbwarning("The value for the name contains invalid characters." +
+                       " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+            return;
+        }
         if (uri != null && uri.value != "") {
-            var body_xml = '<syn:endpoint xmlns:syn="' + SYNAPSE_NS + '" 
name="' + trim(name.value) + '">' +
-                           '<syn:address uri="' + uri.value + '"';
+            var body_xml = '<syn:endpoint xmlns:syn="' + SYNAPSE_NS + '" 
name="' + value + '">' +
+                           '<syn:address uri="' + 
convertToValidXMlString(trim(uri.value)) + '"';
             var format = document.getElementById("endpoint_format0");
             var format_index = null;
             var format_value = null;
@@ -1397,7 +1419,7 @@
             }
             body_xml += '</syn:address>' +
                         '</syn:endpoint>';
-            return relpaceString(relpaceString(trim(body_xml), "&amp;", "&"), 
"&", "&amp;");
+            return trim(body_xml);
         } else {
             if (save_state = true) {
                 esbwarning("Invalid Address Endpoint: URI must be specified", 
TYPE_INFO);
@@ -1416,7 +1438,12 @@
 function getXmlForWSDLEndpoint() {
     var name = document.getElementById("endpoint_name0");
     var uri = document.getElementById("endpoint_address0");
-    if (name != null && name.value != "" && namevalidate(name.value)) {
+    if (name != null && name.value != "") {
+        if (!namevalidate(name.value)) {
+            esbwarning("The value for the name contains invalid characters." +
+                       " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+            return;
+        }
         var inlinewsdlstr = null;
         var body_xml = '<syn:endpoint xmlns:syn="' + SYNAPSE_NS + '" name="' + 
trim(name.value) + '">' +
                        "<syn:wsdl ";
@@ -1557,7 +1584,7 @@
         }
         body_xml += '</syn:wsdl>' +
                     '</syn:endpoint>';
-        return relpaceString(relpaceString(trim(body_xml), "&amp;", "&"), "&", 
"&amp;");
+        return trim(body_xml);
     }
     else
     {
@@ -1598,11 +1625,17 @@
     } else if ("FailOver" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
+                var value = trim(name.value);
+                if (!namevalidate(value)) {
+                    esbwarning("The value for the name contains invalid 
characters." +
+                               " Only, alphanumeric or underscore characters 
are allowed. ", TYPE_INFO);
+                    return;
+                }
                 var body_xml = '<ns1:saveEndpoint 
xmlns:ns1="http://org.apache.synapse/xsd"; xmlns:syn="' + SYNAPSE_NS + '">' +
-                               '<syn:endpoint name="' + name.value + ' ">' + 
childepstr +
+                               '<syn:endpoint name="' + value + ' ">' + 
childepstr +
                                '</syn:endpoint>' +
                                '</ns1:saveEndpoint>';
                 var callURL = serverURL + "/" + ENDPOINT_MANAGEMENT + "/" + 
"saveEndpoint";
@@ -1614,11 +1647,17 @@
     } else if ("LoadBalance" == type) {
         var nameId = "endpoint_name" + endpointindexs[0].index;
         var name = document.getElementById(nameId.toString());
-        if (name != null && name.value != "" && namevalidate(name.value)) {
+        if (name != null && name.value != "") {
             var childepstr = dataToString(type);
             if (childepstr != undefined && childepstr != null) {
+                var value = trim(name.value);
+                if (!namevalidate(value)) {
+                    esbwarning("The value for the name contains invalid 
characters." +
+                               " Only, alphanumeric or underscore characters 
are allowed. ", TYPE_INFO);
+                    return;
+                }
                 var body_xml = '<ns1:saveEndpoint 
xmlns:ns1="http://org.apache.synapse/xsd"; xmlns:syn="' + SYNAPSE_NS + '">' +
-                               '<syn:endpoint name="' + name.value + ' ">' + 
childepstr +
+                               '<syn:endpoint name="' + value + ' ">' + 
childepstr +
                                '</syn:endpoint>' +
                                '</ns1:saveEndpoint>';
                 var callURL = serverURL + "/" + ENDPOINT_MANAGEMENT + "/" + 
"saveEndpoint";

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/entries.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/entries.js  
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/entries.js  
    Mon Dec 10 01:03:23 2007
@@ -134,15 +134,15 @@
     xmlObj.setAttribute("type", type)
     var str = transformXMLToString(xmlObj, xsltfilename, transformeddiv);
     panelcontrol.innerHTML = "<div class='hd'><div 
class='tl'></div><span>WSO2-ESB Entry Editor</span><div class='tr'></div></div>"
-            + "<div class='bd'><div id='divAddEntry' 
style='overflow:auto;height:200px'>"
-            + str + "</div>"
-            + "<div><table style='margin-left: 150px;'><tbody><tr>"
-            + "<td><input type='button' class='panelbutton_default'"
-            + "onclick=" + onclickfn + "('" + endponitStr + "')  
value='Save'></td><td></td>"
-            + "<td><input type='button' class='panelbutton_cancel'"
-            + "onclick=hideEntryPanel() value='Cancel'/></td>"
-            + "</tr></tbody></table></div></div>"
-            + "<div id='statusbar' class='ft'>" + type + " Entry</div>";
+        + "<div class='bd'><div id='divAddEntry' 
style='overflow:auto;height:200px'>"
+        + str + "</div>"
+        + "<div><table style='margin-left: 150px;'><tbody><tr>"
+        + "<td><input type='button' class='panelbutton_default'"
+        + "onclick=" + onclickfn + "('" + endponitStr + "')  
value='Save'></td><td></td>"
+        + "<td><input type='button' class='panelbutton_cancel'"
+        + "onclick=hideEntryPanel() value='Cancel'/></td>"
+        + "</tr></tbody></table></div></div>"
+        + "<div id='statusbar' class='ft'>" + type + " Entry</div>";
     document.getElementById("divOverPanel").appendChild(panelcontrol);
     document.getElementById("divOverPanel").style.display = "inline";
     panelcontrol.style.zIndex = 3;
@@ -161,17 +161,17 @@
     xmlObj.setAttribute("type", type)
     var str = transformXMLToString(xmlObj, xsltfilename, transformeddiv);
     panelcontrol.innerHTML = "<div class='breadcrumb'><a href='#' 
onclick='javascript: "
-            + "showEntries(); return false;'>Manage 
Entries</a>&#160;&gt;&#160;"
-            + type + " Entry</div>"
-            + "<div class='page-main-title title-local-registry'>" + type + " 
Entry</div>"
-            + "<div class='endpointcontentPaneClass' ><div id='divAddEntry'>"
-            + str + "</div>"
-            + "<div><table class='data-table' style='width:450px;'><tbody><tr>"
-            + "<td style='width:80px;'></td><td><input type='button' 
class='panelbutton_default button-space'"
-            + "onclick=" + onclickfn + "('" + endponitStr + "')  value='Save'>"
-            + "<input type='button' class='panelbutton_cancel'"
-            + "onclick=discardEntrySave() value='Cancel'/></td>"
-            + "</tr></tbody></table></div></div>";
+        + "showEntries(); return false;'>Manage Entries</a>&#160;&gt;&#160;"
+        + type + " Entry</div>"
+        + "<div class='page-main-title title-local-registry'>" + type + " 
Entry</div>"
+        + "<div class='endpointcontentPaneClass' ><div id='divAddEntry'>"
+        + str + "</div>"
+        + "<div><table class='data-table' style='width:450px;'><tbody><tr>"
+        + "<td style='width:80px;'></td><td><input type='button' 
class='panelbutton_default button-space'"
+        + "onclick=" + onclickfn + "('" + endponitStr + "')  value='Save'>"
+        + "<input type='button' class='panelbutton_cancel'"
+        + "onclick=discardEntrySave() value='Cancel'/></td>"
+        + "</tr></tbody></table></div></div>";
 }
 
 function discardEntrySave() {
@@ -196,10 +196,15 @@
     if (entryNameID != null && entryNameID != undefined) {
         entryName = entryNameID.value;
     }
-    if (entryName == null || entryName == "" || !namevalidate(entryName)) {
+    if (entryName == null || entryName == "") {
         esbwarning("Name must be specified", TYPE_INFO);
         return;
     }
+    if (!namevalidate(entryName)) {
+        esbwarning("The value for the name contains invalid characters." +
+                   " Only, alphanumeric or underscore characters are allowed. 
", TYPE_INFO);
+        return;
+    }
     var valueId = document.getElementById("entry_value");
     var entryvalue = null;
     if (valueId != null && valueId != undefined) {
@@ -269,10 +274,15 @@
     if (entryNameID != null && entryNameID != undefined) {
         entryName = entryNameID.value;
     }
-    if (entryName == null || entryName == "" || !namevalidate(entryName)) {
+    if (entryName == null || entryName == "") {
         esbwarning("Name must be specified", TYPE_INFO);
         return;
     }
+    if (!namevalidate(entryName)) {
+        esbwarning("The value for the name contains invalid characters." +
+                   " Only, alphanumeric or underscore characters are allowed. 
", TYPE_INFO);
+        return;
+    }
     var valueId = document.getElementById("entry_value");
     var entryvalue = null;
     if (valueId != null && valueId != undefined) {

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/esbregistry.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/esbregistry.js
  (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/esbregistry.js
  Mon Dec 10 01:03:23 2007
@@ -270,7 +270,9 @@
         return;
     }
 
-    if (!validateFileName(newFolderName)) {
+    if (!namevalidate(newFolderName)) {
+        esbwarning("The value for the name contains invalid characters." +
+                   " Only, alphanumeric or underscore characters are allowed. 
", TYPE_INFO);
         return;
     }
 
@@ -303,7 +305,9 @@
         return;
     }
 
-    if (!validateFileName(newFolderName)) {
+    if (!namevalidate(newFolderName)) {
+        esbwarning("The value for the name contains invalid characters." +
+                   " Only, alphanumeric or underscore characters are allowed. 
", TYPE_INFO);
         return;
     }
 
@@ -424,7 +428,9 @@
         return;
     }
 
-    if (!validateFileName(newFileName)) {
+    if (!namevalidate(newFileName)) {
+        esbwarning("The value for the name contains invalid characters." +
+                   " Only, alphanumeric or underscore characters are allowed. 
", TYPE_INFO);
         return;
     }
 

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/filter_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/filter_mediator.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/filter_mediator.js
    Mon Dec 10 01:03:23 2007
@@ -42,7 +42,7 @@
             return false;
         }
         if (regex != null && regex.value != "") {
-            mediator.setAttribute("regex", regex.value);
+            mediator.setAttribute("regex", 
convertToValidXMlString(trim(regex.value)));
         } else {
             esbwarning("The regular expression must be specified for the 
filter mediator", TYPE_INFO);
             return false;

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/header_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/header_mediator.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/header_mediator.js
    Mon Dec 10 01:03:23 2007
@@ -25,16 +25,21 @@
     var _value = document.getElementById("header_valueorexpr_value");
     var actionElements = document.getElementsByName("action");
 
-    if (name != null && name.value != "" && namevalidate(trim(name.value))) {
+    if (name != null && name.value != "") {
+        if (!namevalidate(name.value)) {
+            esbwarning("The value for the name contains invalid characters." +
+                       " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+            return false;
+        }
         mediator.setAttribute("name", name.value);
         if ((_value == undefined || _value == null || _value.value == "") && 
actionElements[0].checked && !validate) {
             esbwarning("A value or expression must be specified to select the 
SOAP header", TYPE_INFO);
             return false;
         }
 
-        if(name.value.indexOf(":") != -1){
-            var prefix = name.value.substring(0,name.value.indexOf(":"));
-            if(!isDeclared(mediator,prefix) && !validate){
+        if (name.value.indexOf(":") != -1) {
+            var prefix = name.value.substring(0, name.value.indexOf(":"));
+            if (!isDeclared(mediator, prefix) && !validate) {
                 esbwarning("Undeclared namesapce: " + prefix, TYPE_WARN);
                 return false;
             }
@@ -45,7 +50,7 @@
             if (typeElements.length != 0 && typeElements[0].checked) {
                 mediator.setAttribute("value", _value.value);
                 mediator.removeAttribute("expression");
-            } else if(_value != undefined && _value != null) {
+            } else if (_value != undefined && _value != null) {
                 mediator.setAttribute("expression", _value.value);
                 mediator.removeAttribute("value");
             }
@@ -53,7 +58,7 @@
             mediator.setAttribute("action", "remove");
         }
     }
-    else if(!validate) {
+    else if (!validate) {
         esbwarning("The header name must be specified", TYPE_INFO);
         return false;
     }
@@ -73,7 +78,7 @@
 
     editmediator(position);
 
-    showNamespaceButton(position,'','','namespaceButtonCell','true');
+    showNamespaceButton(position, '', '', 'namespaceButtonCell', 'true');
 }
 
 function setValue(position) {
@@ -97,6 +102,6 @@
 
     collectdata["header"](mediator, true);
     mediator.setAttribute("action", action);
-    
+
     editmediator(position);
 }
\ No newline at end of file

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
 (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/makefault_mediator.js
 Mon Dec 10 01:03:23 2007
@@ -79,7 +79,7 @@
             if (reasonelem.getAttribute("expression") != null) {
                 reasonelem.removeAttribute("expression");
             }
-            reasonelem.setAttribute("value", reasonContent);
+            reasonelem.setAttribute("value", 
convertToValidXMlString(trim(reasonContent)));
         } else {
             if (reasonelem.getAttribute("value") != null) {
                 reasonelem.removeAttribute("value");
@@ -92,20 +92,20 @@
             if (document.getElementById("node").value != "") {
                 mediator.appendChild(createesbelement(
                         "<syn:node 
xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                                + document.getElementById("node").value + 
"</syn:node>"));
+                                + 
convertToValidXMlString(trim(document.getElementById("node").value)) + 
"</syn:node>"));
             } 
         }
 
         if (document.getElementById("role").value != "") {
             mediator.appendChild(createesbelement(
                     "<syn:role xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                            + document.getElementById("role").value + 
"</syn:role>"));
+                            + 
convertToValidXMlString(trim(document.getElementById("role").value)) + 
"</syn:role>"));
         }
 
         if (document.getElementById("detail") != null && 
document.getElementById("detail").value != "") {
             mediator.appendChild(createesbelement(
                     "<syn:detail xmlns:syn='http://ws.apache.org/ns/synapse'>"
-                            + document.getElementById("detail").value + 
"</syn:detail>"));
+                            + 
convertToValidXMlString(trim(document.getElementById("detail").value)) + 
"</syn:detail>"));
         }
 
     } else {

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/property.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/property.js
   (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/property.js
   Mon Dec 10 01:03:23 2007
@@ -45,7 +45,7 @@
             mediator.removeChild(properties[i]);
         }
     }
-    
+
     setnodepositions(mediator, position);
 
     editmediator(position);
@@ -59,14 +59,14 @@
     // editing mediator position in the internal model
     var position = geteditingmediatorposition();
 
-//    vieweditedmediator();
+    //    vieweditedmediator();
 
     // mediator retrieved and adding the property with blank fields
     var mediator = getnestedmediator(internalmodel.sequence, position);
 
     // node.localName is not supported by the IE
     collectdata[mediator.nodeName.substring(mediator.nodeName.indexOf(":") + 
1, mediator.nodeName.length)](mediator, true);
-    
+
     var property;
 
     // checking the availabality of the createElementNS method and creating 
the property element
@@ -83,13 +83,13 @@
     if (browsername.indexOf(IE_BROWSER_NAME) != -1) {
         prefix1 = "syn:";
     }
-//    var esb_med_pos = position.toString() + "." + 
mediator.getElementsByTagName(prefix1 + "property").length;
-//    property.setAttribute("esb_med_pos", esb_med_pos);
+    //    var esb_med_pos = position.toString() + "." + 
mediator.getElementsByTagName(prefix1 + "property").length;
+    //    property.setAttribute("esb_med_pos", esb_med_pos);
 
     mediator.appendChild(property);
 
     setnodepositions(mediator, position);
-    
+
     // reload the editing div with the modified internal model
     editmediator(position);
 }
@@ -137,55 +137,71 @@
     for (var j = 0; j < propertytrs.length; j++) {
 
         if (window.ActiveXObject) {
+            var name = propertytrs[j].children[0].children[0].value;
+            if (name == undefined || name == null || name == "") {
+                esbwarning("A property with out a name can't exist." +
+                           " There are some properties without a name.", 
TYPE_INFO);
+                return false;
+            }
+            name = trim(name);
+            if (!namevalidate(name)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return false;
+            }
+            var propertystr = "<syn:property 
xmlns:syn='http://ws.apache.org/ns/synapse' name='"
+                + name + "' ";
 
-            if (propertytrs[j].children[0].children[0].value != "") {
-
-                var propertystr = "<syn:property 
xmlns:syn='http://ws.apache.org/ns/synapse' name='"
-                        + propertytrs[j].children[0].children[0].value + "' ";
-
-                var propertytype = 
propertytrs[j].children[1].children[0].options[
-                        
propertytrs[j].children[1].children[0].selectedIndex].value;
-                if (propertytype == "value") {
-                    propertystr += "value='" + 
propertytrs[j].children[2].children[0].value + "' ";
-                } else if (propertytype == "expression") {
-                    propertystr += "expression='" + 
propertytrs[j].children[2].children[0].value + "' ";
-                }
-                if 
(namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)] != 
undefined) {
-                    var nss = 
namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)];
-                    for (var g = 0; g < nss.length; g++) {
-                        if(nss[g].name != "xmlns:syn") {
-                            propertystr += nss[g].name + "='" + nss[g].value + 
"' ";
-                        }
+            var propertytype = propertytrs[j].children[1].children[0].options[
+                propertytrs[j].children[1].children[0].selectedIndex].value;
+            if (propertytype == "value") {
+                propertystr += "value='" + 
propertytrs[j].children[2].children[0].value + "' ";
+            } else if (propertytype == "expression") {
+                propertystr += "expression='" + 
propertytrs[j].children[2].children[0].value + "' ";
+            }
+            if 
(namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)] != 
undefined) {
+                var nss = 
namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)];
+                for (var g = 0; g < nss.length; g++) {
+                    if (nss[g].name != "xmlns:syn") {
+                        propertystr += nss[g].name + "='" + nss[g].value + "' 
";
                     }
                 }
-                mediator.appendChild(createesbelement(propertystr + "/>"));
             }
-
+            mediator.appendChild(createesbelement(propertystr + "/>"));
         } else {
+            var name = propertytrs[j].childNodes[0].childNodes[0].value;
+            if (name == undefined || name == null || name == "") {
+                esbwarning("A property with out a name can't exist." +
+                           " There are some properties without a name.", 
TYPE_INFO);
+                return false;
+            }
+            name = trim(name);
+            if (!namevalidate(name)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return false;
+            }
 
-            if (propertytrs[j].childNodes[0].childNodes[0].value != "") {
-
-                var property;
-                if (document.createElementNS != "undefined") {
-                    property = document.createElementNS(SYNAPSE_NS, 
"syn:property");
-                }
+            var property;
+            if (document.createElementNS != "undefined") {
+                property = document.createElementNS(SYNAPSE_NS, 
"syn:property");
+            }
 
-                property.setAttribute("name", 
propertytrs[j].childNodes[0].childNodes[0].value);
-                var propertytype = 
propertytrs[j].childNodes[1].childNodes[0].options[
-                        
propertytrs[j].childNodes[1].childNodes[0].selectedIndex].value;
-                if (propertytype == "value") {
-                    property.setAttribute("value", 
propertytrs[j].childNodes[2].childNodes[0].value);
-                } else if (propertytype == "expression") {
-                    property.setAttribute("expression", 
propertytrs[j].childNodes[2].childNodes[0].value);
-                }
-                if 
(namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)] != 
undefined) {
-                    var nss = 
namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)];
-                    for (var g = 0; g < nss.length; g++) {
-                        property.setAttribute(nss[g].name, nss[g].value);
-                    }
+            property.setAttribute("name", name);
+            var propertytype = 
propertytrs[j].childNodes[1].childNodes[0].options[
+                
propertytrs[j].childNodes[1].childNodes[0].selectedIndex].value;
+            if (propertytype == "value") {
+                property.setAttribute("value", 
propertytrs[j].childNodes[2].childNodes[0].value);
+            } else if (propertytype == "expression") {
+                property.setAttribute("expression", 
propertytrs[j].childNodes[2].childNodes[0].value);
+            }
+            if 
(namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)] != 
undefined) {
+                var nss = 
namespaces[mediator.getAttribute("esb_med_pos").concat(".").concat(j)];
+                for (var g = 0; g < nss.length; g++) {
+                    property.setAttribute(nss[g].name, nss[g].value);
                 }
-                mediator.appendChild(property);
             }
+            mediator.appendChild(property);
         }
     }
 }
@@ -256,23 +272,46 @@
     }
     for (var j = 0; j < features.length; j++) {
         if (window.ActiveXObject) {
-
-            if (features[j].children[0].children[0].value != "") {
-                var featurestr = "<syn:feature 
xmlns:syn='http://ws.apache.org/ns/synapse' name='"
-                        + features[j].children[0].children[0].value + "' ";
-                featurestr += "value='" + 
features[j].children[1].children[0].value + "' ";
-                mediator.appendChild(createesbelement(featurestr + "/>"));
+            var name = features[j].children[0].children[0].value;
+            if (name == undefined || name == null || name == "") {
+                esbwarning("A property with out a name can't exist." +
+                           " There are some properties without a name.", 
TYPE_INFO);
+                return false;
+            }
+            name = trim(name);
+            if (!namevalidate(name)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return false;
             }
+
+            var featurestr = "<syn:feature 
xmlns:syn='http://ws.apache.org/ns/synapse' name='"
+                + name + "' ";
+            featurestr += "value='" + 
features[j].children[1].children[0].value + "' ";
+            mediator.appendChild(createesbelement(featurestr + "/>"));
         } else {
-            if (features[j].childNodes[0].childNodes[0].value != "") {
-                var feature;
-                if (document.createElementNS != "undefined") {
-                    feature = document.createElementNS(SYNAPSE_NS, 
"syn:feature");
-                }
-                feature.setAttribute("name", 
features[j].childNodes[0].childNodes[0].value);
-                feature.setAttribute("value", 
features[j].childNodes[1].childNodes[0].value);
-                mediator.appendChild(feature);
+            var name = features[j].childNodes[0].childNodes[0].value;
+            if (name == undefined || name == null || name == "") {
+                esbwarning("A property with out a name can't exist." +
+                           " There are some properties without a name.", 
TYPE_INFO);
+                return false;
+            }
+            name = trim(name);
+            if (!namevalidate(name)) {
+                esbwarning("The value for the name contains invalid 
characters." +
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return false;
             }
+
+
+            var feature;
+            if (document.createElementNS != "undefined") {
+                feature = document.createElementNS(SYNAPSE_NS, "syn:feature");
+            }
+            feature.setAttribute("name", name);
+            feature.setAttribute("value", 
features[j].childNodes[1].childNodes[0].value);
+            mediator.appendChild(feature);
+
         }
     }
 }
@@ -286,7 +325,7 @@
     var position = geteditingmediatorposition();
     // mediator retrieved and extracting the features
     var mediator = getnestedmediator(internalmodel.sequence, position);
-    collectdata[mediator.nodeName.substring(mediator.nodeName.indexOf(":") + 
1,mediator.nodeName.length)](mediator,true);
+    collectdata[mediator.nodeName.substring(mediator.nodeName.indexOf(":") + 
1, mediator.nodeName.length)](mediator, true);
     setnodepositions(mediator, position);
     var features = mediator.getElementsByTagName("feature");
     // this is a hack to the wrong behaviour of the IE in getElementsByTagName 
method

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/switch_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/switch_mediator.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/switch_mediator.js
    Mon Dec 10 01:03:23 2007
@@ -37,7 +37,7 @@
     var regexvalue = document.getElementById("regex_val");
 
     if (regexvalue != undefined && regexvalue != null && regexvalue != 
"undefined" && regexvalue.value != "") {
-        mediator.setAttribute("regex", regexvalue.value);
+        mediator.setAttribute("regex", 
convertToValidXMlString(regexvalue.value));
     } else if(!validate) {
         esbwarning("The regular expression must be specified for each case", 
TYPE_INFO);
         return false;

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/throttle_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/throttle_mediator.js
  (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/throttle_mediator.js
  Mon Dec 10 01:03:23 2007
@@ -58,7 +58,13 @@
         mediator.removeAttribute("id");
         var thottleID = document.getElementById(("throttle_id" + 
cp).toString());
         if (thottleID != null && thottleID != undefined && thottleID.value != 
"") {
-            mediator.setAttribute("id", thottleID.value);
+            var id = trim(thottleID.value);
+            if (!namevalidate(id)) {
+                esbwarning("The value for the ID contains invalid characters." 
+
+                           " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+                return false;
+            }
+            mediator.setAttribute("id", id);
         } else {
             if (throttle_save_state == 1) {
                 esbwarning("Throttle Id must be specified", TYPE_INFO);
@@ -381,10 +387,10 @@
     var epdiv = document.getElementById("throttle_edit");
     if (epdiv != null && mediator != null) {
         processXML(mediator, "mediators/throttle_edit.xsl", epdiv);
-//        var newvalue = document.getElementById("policylayoutdiv");
-//        if (newvalue == undefined && pvsvalue != undefined && pvsvalue != 
null) {
-//            document.getElementById("policy_div").appendChild(pvsvalue);
-//        }
+        //        var newvalue = document.getElementById("policylayoutdiv");
+        //        if (newvalue == undefined && pvsvalue != undefined && 
pvsvalue != null) {
+        //            
document.getElementById("policy_div").appendChild(pvsvalue);
+        //        }
     }
 }
 function showinlineonrejectlayout(index) {
@@ -410,9 +416,9 @@
     var epdiv = document.getElementById("throttle_edit");
     if (epdiv != null && mediator != null) {
         processXML(mediator, "mediators/throttle_edit.xsl", epdiv);
-//        var newvalue = document.getElementById("policylayoutdiv");
-//        if (newvalue == undefined && pvsvalue != undefined && pvsvalue != 
null) {
-//            document.getElementById("policy_div").appendChild(pvsvalue);
-//        }
+        //        var newvalue = document.getElementById("policylayoutdiv");
+        //        if (newvalue == undefined && pvsvalue != undefined && 
pvsvalue != null) {
+        //            
document.getElementById("policy_div").appendChild(pvsvalue);
+        //        }
     }
 }
\ No newline at end of file

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/validate_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/validate_mediator.js
  (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/validate_mediator.js
  Mon Dec 10 01:03:23 2007
@@ -29,7 +29,7 @@
     var schemakeys = document.getElementsByName("schema_key");
     var k = schemakeys.length;
     if (!validate && k == 0) {
-        if (send_save_mode == true) {
+        if (send_save_mode) {
             esbwarning("Schema registry keys to be used for validation must be 
specified", TYPE_INFO);
             return false;
         }
@@ -57,8 +57,8 @@
             mediator.appendChild(schemakey);
         }
     }
-    if (!validate && validkeyfound == false) {
-        if (send_save_mode == true) {
+    if (!validate && !validkeyfound) {
+        if (send_save_mode) {
             esbwarning("One or more schema registry keys must be specified for 
validation", TYPE_INFO);
             return false;
         }

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/xquery_mediator.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/xquery_mediator.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/mediators/xquery_mediator.js
    Mon Dec 10 01:03:23 2007
@@ -169,13 +169,20 @@
         var namespce = getnamespasexquery(position);
         if (window.ActiveXObject) {
             if (!validate) {
+                var name = propertytrs[j].children[1].children[0].value;
                 if (propertytrs[j].children[0].children[0].value != ""
                     && propertytrs[j].children[0].children[0].value != "Select 
A Value"
-                    && propertytrs[j].children[1].children[0].value != "") {
+                    && name != "") {
+                    name = trim(name);
+                    if (!namevalidate(name)) {
+                        esbwarning("The value for the name contains invalid 
characters." +
+                                   " Only, alphanumeric or underscore 
characters are allowed. ", TYPE_INFO);
+                        return false;
+                    }
 
                     var propertystr = "<syn:variable 
xmlns:syn='http://ws.apache.org/ns/synapse' type='"
                         + propertytrs[j].children[0].children[0].value + "' 
name='"
-                        + propertytrs[j].children[1].children[0].value + "' ";
+                        + name + "' ";
 
                     var propertytype = 
propertytrs[j].children[2].children[0].options[
                         
propertytrs[j].children[2].children[0].selectedIndex].value;
@@ -242,16 +249,22 @@
 
         } else {
             if (!validate) {
+                var name = propertytrs[j].childNodes[1].childNodes[0].value;
                 if (propertytrs[j].childNodes[0].childNodes[0].value != ""
                     && propertytrs[j].childNodes[0].childNodes[0].value != 
"Select A Value"
-                    && propertytrs[j].childNodes[1].childNodes[0].value != "") 
{
-
+                    && name != "") {
+                    name = trim(name);
+                    if (!namevalidate(name)) {
+                        esbwarning("The value for the name contains invalid 
characters." +
+                                   " Only, alphanumeric or underscore 
characters are allowed. ", TYPE_INFO);
+                        return false;
+                    }
                     var property;
                     if (document.createElementNS != "undefined") {
                         property = document.createElementNS(SYNAPSE_NS, 
"syn:variable");
                     }
                     property.setAttribute("type", 
propertytrs[j].childNodes[0].childNodes[0].value);
-                    property.setAttribute("name", 
propertytrs[j].childNodes[1].childNodes[0].value);
+                    property.setAttribute("name", name);
                     var propertytype = 
propertytrs[j].childNodes[2].childNodes[0].options[
                         
propertytrs[j].childNodes[2].childNodes[0].selectedIndex].value;
                     if (propertytype == "value") {

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/proxyservices.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/proxyservices.js
        (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/proxyservices.js
        Mon Dec 10 01:03:23 2007
@@ -620,7 +620,12 @@
     var faultsequence;
     var endpoint;
 
-    if (document.getElementById("proxy_name") != null && 
document.getElementById("proxy_name").value != "" && 
namevalidate(document.getElementById("proxy_name").value)) {
+    if (document.getElementById("proxy_name") != null && 
document.getElementById("proxy_name").value != "") {
+        if (!namevalidate(document.getElementById("proxy_name").value)) {
+            esbwarning("The value for the name contains invalid characters." +
+                       " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+            return -1;
+        }
         internalmodel.proxyname = document.getElementById("proxy_name").value;
         internalmodel.proxy.setAttribute("name", 
document.getElementById("proxy_name").value);
     } else if (!validate && internalmodel.proxy.getAttribute("int_op") == 
"add") {

Modified: 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/sequences.js
==============================================================================
--- 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/sequences.js
    (original)
+++ 
trunk/esb/java/modules/distribution/src/main/www/extensions/core/js/sequences.js
    Mon Dec 10 01:03:23 2007
@@ -195,7 +195,7 @@
 
     var relativediv = document.createElement("div");
     relativediv.setAttribute("style", "_margin-left:0px;");
-    getsequencedisplay(relativediv);        
+    getsequencedisplay(relativediv);
     objdiv.appendChild(relativediv);
 
     var savepanel = document.createElement("div");
@@ -315,7 +315,7 @@
     internalmodel.sequence.setAttribute("onError", getRegistryKey());
 
     dicardregistrybrowser(1);
-    
+
     viewsequencechanges();
     editonerror();
 
@@ -337,7 +337,7 @@
  * the sequence (mediator update)
  */
 function viewmediator(mediatordiv, mediatornode, position) {
-    
+
     setnodepositions(mediatornode, position);
     //    showStuffInNewWindow(new 
XMLSerializer().serializeToString(mediatornode));
     mediatordiv.innerHTML = "";
@@ -396,7 +396,7 @@
                     getnestedmediator(internalmodel.sequence, editingpos), 
editingpos);
         }
     }
-    
+
     var mediatorDiv = document.getElementById("mediatordiv" + position);
 
     var editdiv = document.createElement("div");
@@ -528,7 +528,7 @@
         editmediator(edit_pos)
     }
 }
-    
+
 
 /**
  * This method deletes the mediator in the given position of the given node 
described as
@@ -721,7 +721,7 @@
 
         
collectdata[editingelem.nodeName.substring(editingelem.nodeName.indexOf(":") + 
1, editingelem.nodeName.length)] (editingelem, true);
     }
-    
+
     nestedmovedown(position, internalmodel.sequence);
     reloadsequencedisplay();
 
@@ -822,8 +822,12 @@
  */
 function getvalueofname(type) {
 
-    if(namevalidate(document.getElementById("sequencename").value) && 
document.getElementById("sequencename").value != "") {
-
+    if(document.getElementById("sequencename") != null && 
document.getElementById("sequencename").value != "") {
+        if (!namevalidate(document.getElementById("sequencename").value)) {
+            esbwarning("The value for the name contains invalid characters." +
+                       " Only, alphanumeric or underscore characters are 
allowed. ", TYPE_INFO);
+            return;
+        }
         internalmodel.sequencename = 
document.getElementById("sequencename").value;
         internalmodel.sequence.setAttribute("name", 
internalmodel.sequencename);
 

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to