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">×</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">×</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