You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/11/22 12:59:49 UTC

svn commit: r1544502 - in /juddi/trunk: juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/ juddi-gui/src/main/resources/META-INF/ juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/ juddi-gui/src/main/webapp/ juddi-gui/src/main/we...

Author: alexoree
Date: Fri Nov 22 11:59:49 2013
New Revision: 1544502

URL: http://svn.apache.org/r1544502
Log:
JUDDI-720 done

Modified:
    juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
    juddi/trunk/juddi-gui/src/main/resources/META-INF/uddi.xml
    juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
    juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
    juddi/trunk/juddi-gui/src/main/webapp/ajax/settings.jsp
    juddi/trunk/juddi-gui/src/main/webapp/assertions.jsp
    juddi/trunk/juddi-gui/src/main/webapp/js/main.js
    juddi/trunk/juddi-gui/src/main/webapp/settings.jsp
    juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java
    juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml
    juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/js/main.js

Modified: juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java (original)
+++ juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java Fri Nov 22 11:59:49 2013
@@ -131,6 +131,12 @@ public class UddiHub implements Serializ
      *
      */
     public static final String PROP_PREFIX = "config.props.";
+    
+    /**
+     * 
+     * 
+     */
+    public static final String PROP_ADMIN_LOCALHOST_ONLY = "config.props.configLocalHostOnly";
 
     private UddiHub() throws DatatypeConfigurationException {
         df = DatatypeFactory.newInstance();
@@ -3708,4 +3714,15 @@ public class UddiHub implements Serializ
         }
         return 15 * 60 * 1000;
     }
+    
+    /**
+     * If false, the configuration page will be available from anywhere.
+     * If true, it will only be accessible from the server hosting juddi-gui. 
+     * if not defined, the result is true.
+     * @return 
+     */
+    public boolean isAdminLocalhostOnly()
+    {
+        return clientConfig.getConfiguration().getBoolean(PROP_ADMIN_LOCALHOST_ONLY, true);
+    }
 }

Modified: juddi/trunk/juddi-gui/src/main/resources/META-INF/uddi.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/resources/META-INF/uddi.xml?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/resources/META-INF/uddi.xml (original)
+++ juddi/trunk/juddi-gui/src/main/resources/META-INF/uddi.xml Fri Nov 22 11:59:49 2013
@@ -123,6 +123,8 @@
             </automaticLogouts>
             <!--#node, this is the node defined in uddi.xml that the jUDDI-GUI will use for connections-->
             <node>default-ssl</node>
+            <!-- controls remote access to the settings/configuration page -->
+            <configLocalHostOnly>true</configLocalHostOnly>
         </props>
     </config>
 </uddi>

Modified: juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties (original)
+++ juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties Fri Nov 22 11:59:49 2013
@@ -389,3 +389,5 @@ items.maxrecords.callback.tooltip=This v
 items.subscriptionbrief.tooltip=If checked, the UDDI server should only notify you that something has changed, but not the contents of the change.
 navbar.login.required=Login Required
 pages.settings.debuginfo=Debugging Information
+items.settings.add=Add a new setting
+items.settings.note=Note: the key must start with either 

Modified: juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties (original)
+++ juddi/trunk/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties Fri Nov 22 11:59:49 2013
@@ -391,3 +391,5 @@ items.maxrecords.callback.tooltip=Este v
 items.subscriptionbrief.tooltip=Si se selecciona, el servidor UDDI s\u00f3lo debe avisarle de que algo ha cambiado, pero no el contenido del cambio.
 navbar.login.required=Inicio de sesi\u00f3n necesario
 pages.settings.debuginfo=Depuraci\u00f3n de Informaci\u00f3n
+items.settings.add=A\u00f1adir un nuevo ajuste
+items.settings.note=Nota: la clave debe empezar con

Modified: juddi/trunk/juddi-gui/src/main/webapp/ajax/settings.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/webapp/ajax/settings.jsp?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/webapp/ajax/settings.jsp (original)
+++ juddi/trunk/juddi-gui/src/main/webapp/ajax/settings.jsp Fri Nov 22 11:59:49 2013
@@ -12,21 +12,30 @@
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <%@include  file="../csrf.jsp" %>
 <%
-    if (!request.getRemoteAddr().equalsIgnoreCase("localhost") && !request.getRemoteHost().equalsIgnoreCase("127.0.0.1")) {
+    UddiHub x = UddiHub.getInstance(application, session);
+    if (x.isAdminLocalhostOnly() && 
+            !request.getRemoteAddr().equalsIgnoreCase("localhost") && 
+            !request.getRemoteHost().equalsIgnoreCase("127.0.0.1") &&
+            !request.getRemoteHost().equalsIgnoreCase("0:0:0:0:0:0:0:1")) {
         out.write(ResourceLoader.GetResource(session, "pages.settings.accessdenied.remote"));
-        UddiHub.log.warn("Audit: Attempt to alter configuration remotely from " + 
+        UddiHub.log.fatal("Audit: FAILURE Attempt to alter configuration remotely from " + 
                 request.getRemoteAddr() + " " +
                 request.getRemoteHost() + " " + 
                 request.getRemoteUser());
         response.setStatus(403);
     } else {
+         
+        
         //this is controlled by web.xml
     /*if (!request.isUserInRole("uddiadmin")) {
          out.write("Sorry, you need to have the 'uddiadmin' admin role to access this page.");
          response.setStatus(403);
          }*/
         if (request.getMethod().equalsIgnoreCase("post")) {
-            UddiHub x = UddiHub.getInstance(application, session);
+            UddiHub.log.info("Audit: SUCCESS Altering juddi config " + 
+                request.getRemoteAddr() + " " +
+                request.getRemoteHost() + " " + 
+                request.getRemoteUser());
             
             Enumeration it = request.getParameterNames();
             while (it.hasMoreElements()) {

Modified: juddi/trunk/juddi-gui/src/main/webapp/assertions.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/webapp/assertions.jsp?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/webapp/assertions.jsp (original)
+++ juddi/trunk/juddi-gui/src/main/webapp/assertions.jsp Fri Nov 22 11:59:49 2013
@@ -248,6 +248,7 @@
         </div>
         <div class="modal-body" id="addPublisherAssertionContent">
             <%=ResourceLoader.GetResource(session, "items.publisherassertion.add.description")%>
+            <br>
             <div style="float:left;width:25%">
                 <%=ResourceLoader.GetResource(session, "items.publisherassertion.add.fromkey")%> : </div><div id="fromkey" class="edit"><%
                 if (fromkey != null) {

Modified: juddi/trunk/juddi-gui/src/main/webapp/js/main.js
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/webapp/js/main.js?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/webapp/js/main.js (original)
+++ juddi/trunk/juddi-gui/src/main/webapp/js/main.js Fri Nov 22 11:59:49 2013
@@ -34,7 +34,7 @@ function safe_tags_replace(str) {
 function escapeJquerySelector(str)
 {
     if (str)
-        return str.replace(/([ #;?&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1');
+        return str.replace(/([ #;?&,.+*~\':"!^$[\]()=<>|\/@])/g, '\\$1');
     return str;
 }
 

Modified: juddi/trunk/juddi-gui/src/main/webapp/settings.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/webapp/settings.jsp?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/webapp/settings.jsp (original)
+++ juddi/trunk/juddi-gui/src/main/webapp/settings.jsp Fri Nov 22 11:59:49 2013
@@ -1,4 +1,4 @@
--<%-- 
+<%-- 
     Document   : settings
     Created on : Feb 23, 2013, 2:05:35 PM
     Author     : Alex O'Ree
@@ -32,7 +32,7 @@
 
 
             <%=ResourceLoader.GetResource(session, "pages.settings.loading")%> <%=StringEscapeUtils.escapeHtml(x.GetJuddiClientConfig().getConfigurationFile())%><br>
-            <table class="table table-hover">
+            <table class="table table-hover" id="configtable">
                 <tr><th><%=ResourceLoader.GetResource(session, "items.key")%></th>
                     <th><%=ResourceLoader.GetResource(session, "items.value")%></th></tr>
                         <%
@@ -48,8 +48,9 @@
                                     String key = it2.next();
 
                                     String value = cfg.getConfiguration().getString(key);
-                                    if (key.startsWith("client") && !key.startsWith("client.nodes.node")) {
-                                        out.write("<tr><td>");
+                                    if ((key.startsWith("client") || (key.startsWith("config.props"))) && !key.startsWith("client.nodes.node")) {
+                                        out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                        out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                         out.write(StringEscapeUtils.escapeHtml(key));
                                         out.write("</td><td><div ");
                                         if (key.startsWith("client") && !key.startsWith("client.nodes")) {
@@ -64,7 +65,8 @@
                                 for (int i = 0; i < nodes.length; i++) {
 
                                     String key = "client.nodes.node(" + i + ").name";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -72,7 +74,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").description";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -80,7 +83,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").proxyTransport";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -88,7 +92,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").custodyTransferUrl";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -96,7 +101,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").inquiryUrl";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -104,7 +110,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").publishUrl";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -112,7 +119,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").securityUrl";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -120,7 +128,8 @@
                                     out.write("</div></td></tr>");
 
                                     key = "client.nodes.node(" + i + ").subscriptionUrl";
-                                    out.write("<tr><td>");
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
                                     out.write(StringEscapeUtils.escapeHtml(key));
                                     out.write("</td><td><div ");
                                     out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
@@ -136,7 +145,7 @@
                         %>
             </table>
 
-
+            <a class="btn btn-primary" href="javascript:newItem();"><i class="icon-large icon-plus-sign"></i> <%=ResourceLoader.GetResource(session, "actions.add")%></a>
             <a class="btn btn-primary " href="javascript:saveSettings();"><i class="icon-large icon-save"></i> <%=ResourceLoader.GetResource(session, "actions.save")%></a>
             <script type="text/javascript">
 
@@ -203,7 +212,7 @@
                     $("#debugtable").show();
                 }
             </script>
-            <a class="btn " href="javascript:showDebug();"><i class="icon-large icon-save"></i> <%=ResourceLoader.GetResource(session, "pages.settings.debuginfo")%></a>
+            <a class="btn " href="javascript:showDebug();"><i class="icon-large icon-arrow-down"></i> <%=ResourceLoader.GetResource(session, "pages.settings.debuginfo")%></a>
             <div id="debugtable" class="hide">
                 <table class="table table-hover">
                     <tr><th><%=ResourceLoader.GetResource(session, "items.key")%></th>
@@ -237,4 +246,49 @@
             </div>
         </div>
     </div>
+
+
+
+    <script type="text/javascript">
+
+        function newItem() {
+            $("#newItemModal").modal('show');
+        }
+        function appendKey()
+        {
+            $("#newItemModal").modal('hide');
+            var key = safe_tags_replace($("#newItemKey").val());
+            var value = safe_tags_replace($("#newItemValue").val());
+            $("<tr id=\"" + key + "ROW\"><td>" +
+                    "<a href=\"javascript:removeKey('" + key + "');\"><i class=\"icon-trash icon-large\"></i></a>" +
+                    key + "</a></td><td><div id=\"" +
+                    key + "\" class=\"edit\">" +
+                    value + "</div></td></tr>").appendTo("#configtable");
+            Reedit();
+
+        }
+        function removeKey(key)
+        {
+            $('#' + escapeJquerySelector(key) + "ROW").remove();
+        }
+    </script>
+
+    <div class="modal hide fade container" id="newItemModal">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+            <h3><%=ResourceLoader.GetResource(session, "items.settings.add")%></h3>
+        </div>
+        <div class="modal-body">
+            <%=ResourceLoader.GetResource(session, "items.settings.note")%> client., config.props.<br>
+            <%=ResourceLoader.GetResource(session, "items.key")%>: <input type="text" id="newItemKey" placeholder="client."><br>
+            <%=ResourceLoader.GetResource(session, "items.value")%>: <input type="text" id="newItemValue" placeholder="value"><br>
+        </div>
+        <div class="modal-footer">
+            <a href="javascript:appendKey();" class="btn btn-primary"><%=ResourceLoader.GetResource(session, "actions.add")%></a>
+            <a href="javascript:$('#newItemModal').modal('hide');" class="btn"><%=ResourceLoader.GetResource(session, "modal.close")%></a>
+        </div>
+    </div>
+
+
+
     <%@include file="header-bottom.jsp" %>
\ No newline at end of file

Modified: juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java (original)
+++ juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java Fri Nov 22 11:59:49 2013
@@ -140,6 +140,12 @@ public class UddiAdminHub {
      *
      */
     public static final String PROP_PREFIX = "config.props.";
+     /**
+     * 
+     * 
+     */
+    public static final String PROP_ADMIN_LOCALHOST_ONLY = "config.props.configLocalHostOnly";
+
     private transient UDDISecurityPortType security = null;
     private transient JUDDIApiPortType juddi = null;
     private transient String token = null;
@@ -677,4 +683,15 @@ public class UddiAdminHub {
         }
         return "Success";
     }
+    
+        /**
+     * If false, the configuration page will be available from anywhere.
+     * If true, it will only be accessible from the server hosting juddi-gui. 
+     * if not defined, the result is true.
+     * @return 
+     */
+    public boolean isAdminLocalhostOnly()
+    {
+        return clientConfig.getConfiguration().getBoolean(PROP_ADMIN_LOCALHOST_ONLY, true);
+    }
 }

Modified: juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml (original)
+++ juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml Fri Nov 22 11:59:49 2013
@@ -5,7 +5,7 @@
         <nodes>
             <node>
                 <!-- required 'default' node -->
-                <name>default</name> 
+                <name>remote</name> 
                 <description>Main jUDDI node</description>
                 <!-- JAX-WS Transport -->
                 <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
@@ -18,8 +18,7 @@
                 <juddiApiUrl>http://localhost:8080/juddiv3/services/juddi-api</juddiApiUrl>
             </node>
             <node>
-                <!-- required 'default' node -->
-                <name>invm</name> 
+                <name>default</name> 
                 <description>This server</description>
                 <!-- JAX-WS Transport -->
                <proxyTransport>org.apache.juddi.v3.client.transport.InVMTransport</proxyTransport>
@@ -90,6 +89,8 @@
             </automaticLogouts>
             <!--#node, this is the node defined in uddi.xml that the jUDDI-GUI will use for connections-->
             <node>default</node>
+            <!-- controls remote access to the settings/configuration page -->
+            <configLocalHostOnly>true</configLocalHostOnly>
         </props>
     </config>
 </uddi>

Modified: juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp (original)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp Fri Nov 22 11:59:49 2013
@@ -12,55 +12,69 @@
 <!DOCTYPE html>
 <%@include  file="../csrf.jsp" %>
 <%
-    if (request.getMethod().equalsIgnoreCase("POST")) {
-        try {
-            Enumeration it = request.getParameterNames();
-            Configuration cfg = null;
-            Configuration server = AppConfig.getConfiguration();
-            Configuration client = UddiAdminHub.getInstance(application, session).GetJuddiClientConfig().getConfiguration();
-            while (it.hasMoreElements()) {
-                String key = (String) it.nextElement();
-                String val = request.getParameter(key);
-                if (key != "nonce") {
-                    if (key.startsWith("config.props.") || key.startsWith("client.")) {
-                        cfg = client;
-                    }
-                    if (key.startsWith("juddi.")) {
-                        cfg = server;
-                    }
-                    if (cfg == null) {
-                        continue;
-                    }
-                    boolean isbool = false;
-                    boolean isint = false;
-                    boolean boolval = false;
-                    int intval = 0;
-                    if (val.equalsIgnoreCase("true") || val.equalsIgnoreCase("true")) {
-                        isbool = true;
-                        boolval = Boolean.parseBoolean(val);
-                    }
+    UddiAdminHub ahub = UddiAdminHub.getInstance(application, session);
 
-                    try {
-                        intval = Integer.parseInt(val);
-                        isint = true;
-                    } catch (Exception ex) {
-                    }
-                    if (isbool) {
-                        cfg.setProperty(key, boolval);
-                    } else if (isint) {
-                        cfg.setProperty(key, intval);
-                    } else {
-                        cfg.setProperty(key, val);
-                    }
-                    cfg = null;
+    if (ahub.isAdminLocalhostOnly() && 
+            !request.getRemoteAddr().equalsIgnoreCase("localhost") && 
+            !request.getRemoteHost().equalsIgnoreCase("127.0.0.1") &&
+            !request.getRemoteHost().equalsIgnoreCase("0:0:0:0:0:0:0:1")) {
+        out.write("Access Denied");
+        UddiAdminHub.log.fatal("Audit: FAILURE Attempt to alter configuration remotely from "
+                + request.getRemoteAddr() + " "
+                + request.getRemoteHost() + " "
+                + request.getRemoteUser());
+        response.setStatus(403);
+    } else {
+        if (request.getMethod().equalsIgnoreCase("POST")) {
+            try {
+                Enumeration it = request.getParameterNames();
+                Configuration cfg = null;
+                Configuration server = AppConfig.getConfiguration();
+                Configuration client = ahub.GetJuddiClientConfig().getConfiguration();
+                while (it.hasMoreElements()) {
+                    String key = (String) it.nextElement();
+                    String val = request.getParameter(key);
+                    if (key != "nonce") {
+                        if (key.startsWith("config.props.") || key.startsWith("client.")) {
+                            cfg = client;
+                        }
+                        if (key.startsWith("juddi.")) {
+                            cfg = server;
+                        }
+                        if (cfg == null) {
+                            continue;
+                        }
+                        boolean isbool = false;
+                        boolean isint = false;
+                        boolean boolval = false;
+                        int intval = 0;
+                        if (val.equalsIgnoreCase("true") || val.equalsIgnoreCase("true")) {
+                            isbool = true;
+                            boolval = Boolean.parseBoolean(val);
+                        }
 
+                        try {
+                            intval = Integer.parseInt(val);
+                            isint = true;
+                        } catch (Exception ex) {
+                        }
+                        if (isbool) {
+                            cfg.setProperty(key, boolval);
+                        } else if (isint) {
+                            cfg.setProperty(key, intval);
+                        } else {
+                            cfg.setProperty(key, val);
+                        }
+                        cfg = null;
+
+                    }
+                    UddiAdminHub.getInstance(application, session).GetJuddiClientConfig().saveConfig();
+                    //note server config is autosave.
                 }
-                UddiAdminHub.getInstance(application,session).GetJuddiClientConfig().saveConfig();
-                //note server config is autosave.
+                out.write("<i class=\"icon-thumbs-up icon-2x\"> Saved!");
+            } catch (Exception ex) {
+                out.write("<i class=\"icon-thumbs-down icon-2x\"> Save Failed!<br>" + StringEscapeUtils.escapeHtml(ex.getMessage()));
             }
-            out.write("<i class=\"icon-thumbs-up icon-2x\"> Saved!");
-        } catch (Exception ex) {
-            out.write("<i class=\"icon-thumbs-down icon-2x\"> Save Failed!<br>" + StringEscapeUtils.escapeHtml(ex.getMessage()));
         }
     }
 %>
\ No newline at end of file

Modified: juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp (original)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp Fri Nov 22 11:59:49 2013
@@ -5,6 +5,8 @@
 --%>
 
 
+<%@page import="org.apache.commons.configuration.Configuration"%>
+<%@page import="org.apache.juddi.v3.client.config.ClientConfig"%>
 <%@page import="java.util.Iterator"%>
 <%@page import="org.apache.juddi.config.AppConfig"%>
 <%@page import="org.apache.commons.lang.StringEscapeUtils"%>
@@ -40,40 +42,155 @@
                             Iterator it = AppConfig.getConfiguration().getKeys();
                             while (it.hasNext()) {
                                 String key = (String) it.next();
-                                if (!key.equalsIgnoreCase("nonce")
+                                if (key != null && !key.equalsIgnoreCase("nonce")
                                         && key.startsWith("juddi.")) {
-                                    out.write("<tr ><td>" + StringEscapeUtils.escapeHtml(key) + "</td><td><div ");
-                                    out.write(" id=\"" + StringEscapeUtils.escapeHtml(key) + "\" class=\"edit\"");
-                                    out.write(">" + StringEscapeUtils.escapeHtml(AppConfig.getConfiguration().getProperty(key).toString()) + "</div></td></tr>");
+
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + key + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write(" id=\"" + StringEscapeUtils.escapeHtml(key) + "\" class=\"edit\">");
+                                    try {
+                                        Object j = AppConfig.getConfiguration().getProperty(key);
+
+                                        if (j != null) {
+                                            String str = j.toString();
+                                            if (str != null) {
+                                                out.write(StringEscapeUtils.escapeHtml(str));
+                                            }
+                                        }
+                                    } catch (Exception ex) {
+                                        ex.printStackTrace();
+                                    }
+                                    out.write("</div></td></tr>");
                                 }
                             }
                         %>
             </table>
-            
+
             <h2>Admin Console Config (this web site)</h2>
-            <table class="table table-hover">
+            <%
+                UddiAdminHub ahub = UddiAdminHub.getInstance(application, session);
+                out.write("Loaded from: " + StringEscapeUtils.escapeHtml(ahub.GetJuddiClientConfig().getConfigurationFile()) + "<br>");
+            %>
+            <table class="table table-hover" id="configtable">
                 <tr><th>Field</th><th>Value</th></tr>
                         <%
-                            UddiAdminHub ahub = UddiAdminHub.getInstance(application, session);
-                            it = ahub.GetJuddiClientConfig().getConfiguration().getKeys();
-                            while (it.hasNext()) {
-                                String key = (String) it.next();
-                                if (!key.equalsIgnoreCase("nonce")
-                                        && (key.startsWith("config.props.")
-                                        || key.startsWith("client."))) {
-                                    out.write("<tr ><td>" + StringEscapeUtils.escapeHtml(key) + "</td><td><div ");
-                                    out.write(" id=\"" + StringEscapeUtils.escapeHtml(key) + "\" class=\"edit\"");
-                                    out.write(">" + StringEscapeUtils.escapeHtml(AppConfig.getConfiguration().getProperty(key).toString()) + "</div></td></tr>");
+
+                            try {
+                                ClientConfig cfg = ahub.GetJuddiClientConfig();
+                                Configuration cfg2 = cfg.getConfiguration();
+                                Iterator<String> it2 = cfg.getConfiguration().getKeys();
+
+                                String[] nodes = cfg2.getStringArray("client.nodes.node.name");
+
+                                while (it2.hasNext()) {
+
+                                    String key = it2.next();
+
+                                    String value = cfg.getConfiguration().getString(key);
+                                    if ((key.startsWith("client") || (key.startsWith("config.props"))) && !key.startsWith("client.nodes.node")) {
+                                        out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                        out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                        out.write(StringEscapeUtils.escapeHtml(key));
+                                        out.write("</td><td><div ");
+                                        if (key.startsWith("client") && !key.startsWith("client.nodes")) {
+                                            out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\"");
+                                        }
+                                        out.write(">");
+                                        out.write(StringEscapeUtils.escapeHtml(value));
+                                        out.write("</div></td></tr>");
+                                    }
+                                }
+
+                                for (int i = 0; i < nodes.length; i++) {
+
+                                    String key = "client.nodes.node(" + i + ").name";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").description";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").proxyTransport";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").custodyTransferUrl";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").inquiryUrl";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").publishUrl";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").securityUrl";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
+                                    key = "client.nodes.node(" + i + ").subscriptionUrl";
+                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                    out.write(StringEscapeUtils.escapeHtml(key));
+                                    out.write("</td><td><div ");
+                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                    out.write("</div></td></tr>");
+
                                 }
+
+
+                            } catch (Exception ex) {
+                                ahub.log.error(ex);
                             }
                         %>
             </table>
-            
-            
+
+
             <script type="text/javascript">
                 function save()
                 {
-                    alert("hi");
+                    //alert("hi");
                     var url = 'ajax/saveconfig.jsp';
                     var postbackdata = new Array();
                     $("div.edit").each(function()
@@ -110,38 +227,100 @@
 
                     request.fail(function(jqXHR, textStatus) {
                         window.console && console.log('postback failed ' + url);
-                        $("#saveConfigresultBar").html(jqXHR.responseText + textStatus);
+                        $("#saveConfigresultBar").html(textStatus + ' ' + jqXHR.responseText);
 
                     });
                 }
                 Reedit();
+
             </script>
+            <a class="btn btn-primary" href="javascript:newItem();"><i class="icon-large icon-plus-sign"></i> Add</a>
             <a class="btn btn-primary" href="javascript:save();">Save</a><br><br>
 
 
             <div id="saveConfigresultBar" class="well-small"></div>
 
-            <h2>Debug Information</h2>
-            <table class="table table-hover">
-                <tr><th>Field</th><th>Value</th></tr>
-                        <%
-
-                            it = AppConfig.getConfiguration().getKeys();
-                            while (it.hasNext()) {
-                                String key = (String) it.next();
-
-                                if (!key.equalsIgnoreCase("nonce")
-                                        && !key.startsWith("juddi.")
-                                        && !key.startsWith("client.")
-                                        && key.startsWith("config.props.")) {
-                                    out.write("<tr ><td>" + StringEscapeUtils.escapeHtml(key) + "</td><td><div ");
+            <script type="text/javascript">
+                function showDebug() {
+                    $("#debugtable").show();
+                }
+            </script>
 
-                                    out.write(">" + StringEscapeUtils.escapeHtml(AppConfig.getConfiguration().getProperty(key).toString()) + "</div></td></tr>");
+            <a class="btn " href="javascript:showDebug();"><i class="icon-large icon-arrow-down"></i> Show Debug Info</a>
+            <div id="debugtable" class="hide">
+                <table class="table table-hover">
+                    <tr><th>Field</th><th>Value</th></tr>
+                            <%
+
+                                try {
+                                    ClientConfig cfg = ahub.GetJuddiClientConfig();
+                                    Iterator<String> it2 = cfg.getConfiguration().getKeys();
+
+                                    while (it2.hasNext()) {
+
+                                        String key = it2.next();
+
+                                        if (!key.startsWith("config.props.") && !key.startsWith("client")) {
+                                            String value = cfg.getConfiguration().getString(key);
+                                            out.write("<tr><td>");
+                                            out.write(StringEscapeUtils.escapeHtml(key));
+                                            out.write("</td><td><div ");
+                                            out.write(">");
+                                            out.write(StringEscapeUtils.escapeHtml(value));
+                                            out.write("</div></td></tr>");
+                                        }
+                                    }
+                                } catch (Exception ex) {
+                                    ahub.log.error(ex);
                                 }
-                            }
-                        %>
-            </table>
+
+                            %>
+                </table>
+            </div>
         </div>
 
     </div>
+
+    <script type="text/javascript">
+
+        function newItem() {
+            $("#newItemModal").modal('show');
+        }
+        function appendKey()
+        {
+            $("#newItemModal").modal('hide');
+            var key = safe_tags_replace($("#newItemKey").val());
+            var value = safe_tags_replace($("#newItemValue").val());
+            $("<tr id=\"" + key + "ROW\"><td>" +
+                    "<a href=\"javascript:removeKey('" + key + "');\"><i class=\"icon-trash icon-large\"></i></a>" +
+                    key + "</a></td><td><div id=\"" +
+                    key + "\" class=\"edit\">" +
+                    value + "</div></td></tr>").appendTo("#configtable");
+            Reedit();
+
+        }
+        function removeKey(key)
+        {
+            $('#' + escapeJquerySelector(key) + "ROW").remove();
+        }
+    </script>
+
+    <div class="modal hide fade container" id="newItemModal">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+            <h3>Add a new setting</h3>
+        </div>
+        <div class="modal-body">
+            Note: the key must start with either client., config.props, or juddi.<br>
+            Key: <input type="text" id="newItemKey" placeholder="client."><br>
+            Value: <input type="text" id="newItemValue" placeholder="value"><br>
+        </div>
+        <div class="modal-footer">
+            <a href="javascript:appendKey();" class="btn btn-primary">Add</a>
+            <a href="javascript:$('#newItemModal').modal('hide');" class="btn">Close</a>
+        </div>
+    </div>
+
+
+
     <%@include file="header-bottom.jsp"%>
\ No newline at end of file

Modified: juddi/trunk/juddiv3-war/src/main/webapp/admin/js/main.js
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/admin/js/main.js?rev=1544502&r1=1544501&r2=1544502&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/admin/js/main.js (original)
+++ juddi/trunk/juddiv3-war/src/main/webapp/admin/js/main.js Fri Nov 22 11:59:49 2013
@@ -34,7 +34,7 @@ function safe_tags_replace(str) {
 function escapeJquerySelector(str)
 {
     if (str)
-        return str.replace(/([ #;?&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1');
+        return str.replace(/([ #;?&,.+*~\':"!^$[\]()=<>|\/@])/g,'\\$1');
     return str;
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org