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 2014/12/22 01:09:45 UTC
juddi git commit: JUDDI-903 fixed sql injection JUDDI-902 fixed,
subscriptions are now deleted JUDDI-901 progress JUDDI-706 finishing
up most of the newer functions
Repository: juddi
Updated Branches:
refs/heads/master d158cca2a -> 5fb73fd3f
JUDDI-903 fixed sql injection
JUDDI-902 fixed, subscriptions are now deleted
JUDDI-901 progress
JUDDI-706 finishing up most of the newer functions
Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/5fb73fd3
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/5fb73fd3
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/5fb73fd3
Branch: refs/heads/master
Commit: 5fb73fd3f067b4368a1981938b21731b1da70727
Parents: d158cca
Author: Alex <al...@apache.org>
Authored: Sun Dec 21 19:09:36 2014 -0500
Committer: Alex <al...@apache.org>
Committed: Sun Dec 21 19:09:36 2014 -0500
----------------------------------------------------------------------
.../org/apache/juddi/api/impl/JUDDIApiImpl.java | 105 ++++-
.../apache/juddi/mapping/MappingModelToApi.java | 26 +-
.../org/apache/juddi/model/BusinessEntity.java | 2 +
.../src/main/resources/messages.properties | 2 +-
.../api/impl/API_110_FindBusinessTest.java | 5 +-
juddi-gui/src/main/webapp/csrf.jsp | 14 +-
.../adminconsole/hub/JUDDIRequestsAsXML.java | 203 +++++++++
.../juddi/adminconsole/hub/UddiAdminHub.java | 456 ++++++++++++++++++-
juddiv3-war/src/main/webapp/admin/admin.jsp | 157 +++++--
.../src/main/webapp/admin/ajax/advanced.jsp | 39 ++
10 files changed, 941 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index 1b6b019..6425f2b 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.jws.WebService;
import javax.persistence.EntityManager;
@@ -35,6 +37,7 @@ import javax.xml.bind.JAXB;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.ws.Holder;
+import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -67,10 +70,12 @@ import org.apache.juddi.api_v3.SavePublisher;
import org.apache.juddi.api_v3.SubscriptionWrapper;
import org.apache.juddi.api_v3.SyncSubscription;
import org.apache.juddi.api_v3.SyncSubscriptionDetail;
+import org.apache.juddi.config.AppConfig;
import org.apache.juddi.config.PersistenceManager;
import org.apache.juddi.config.Property;
import org.apache.juddi.mapping.MappingApiToModel;
import org.apache.juddi.mapping.MappingModelToApi;
+import org.apache.juddi.model.BusinessEntity;
import org.apache.juddi.model.ClientSubscriptionInfo;
import org.apache.juddi.model.Node;
import org.apache.juddi.model.Publisher;
@@ -95,6 +100,7 @@ import org.uddi.api_v3.BusinessInfo;
import org.uddi.api_v3.BusinessInfos;
import org.uddi.api_v3.Contact;
import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.DiscardAuthToken;
import org.uddi.api_v3.DispositionReport;
import org.uddi.api_v3.GetRegisteredInfo;
import org.uddi.api_v3.InfoSelection;
@@ -102,6 +108,7 @@ import org.uddi.api_v3.KeyType;
import org.uddi.api_v3.PersonName;
import org.uddi.api_v3.RegisteredInfo;
import org.uddi.api_v3.Result;
+import org.uddi.api_v3.SaveBusiness;
import org.uddi.api_v3.SaveTModel;
import org.uddi.api_v3.TModelInfo;
import org.uddi.api_v3.TModelInfos;
@@ -190,11 +197,14 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
/**
* Deletes publisher(s) from the persistence layer. This method is
- * specific to jUDDI. Administrative privilege required.
+ * specific to jUDDI. Administrative privilege required. Also removes all
+ * registered business entities of the user and marks all created tModels as "deleted"
+ * but not does not remove the tModel from persistence. All subscriptions are also destroyed
*
* @param body
* @throws DispositionReportFaultMessage
*/
+ @Override
public void deletePublisher(DeletePublisher body)
throws DispositionReportFaultMessage {
long startTime = System.currentTimeMillis();
@@ -244,7 +254,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
}
}
log.info("remove all persisted AuthTokens for publisher " + entityKey + ".");
- Query q1 = em.createQuery("DELETE FROM AuthToken auth WHERE auth.authorizedName = '" + entityKey + "'");
+ Query q1 = em.createQuery("DELETE FROM AuthToken auth WHERE auth.authorizedName = ?");
+ q1.setParameter(1, entityKey);
+ q1.executeUpdate();
+ log.info("remove all subscriptions for publisher " + entityKey + ".");
+ q1 = em.createQuery("DELETE FROM Subscription s WHERE s.authorizedName = ?");
+ q1.setParameter(1, entityKey);
q1.executeUpdate();
log.info("removing publisher " + entityKey + ".");
@@ -395,6 +410,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
* @param body
* @throws DispositionReportFaultMessage
*/
+ @Override
public void adminDeleteTModel(DeleteTModel body)
throws DispositionReportFaultMessage {
long startTime = System.currentTimeMillis();
@@ -407,6 +423,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
new ValidatePublish(publisher).validateAdminDeleteTModel(em, body);
+ //TODO if referiental integrity is turned on, check to see if this is referenced anywhere and prevent the delete
List<String> entityKeyList = body.getTModelKey();
for (String entityKey : entityKeyList) {
Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
@@ -1170,11 +1187,47 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
@Override
public DispositionReport adminSaveBusiness(String authInfo, List<AdminSaveBusinessWrapper> values) throws DispositionReportFaultMessage, RemoteException {
long startTime = System.currentTimeMillis();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(JUDDIQuery.ADMIN_SAVE_BUSINESS,
- QueryStatus.SUCCESS, procTime);
- ValidatePublish.unsupportedAPICall();
- return null;
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ UddiEntityPublisher requestor = this.getEntityPublisher(em, authInfo);
+ if (!((Publisher) requestor).isAdmin()) {
+ throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
+ }
+
+ for (int i = 0; i < values.size(); i++) {
+ //impersonate the user
+ AuthToken authToken = sec.getAuthToken(values.get(i).getPublisherID());
+
+ SaveBusiness stm = new SaveBusiness();
+
+ stm.setAuthInfo(authToken.getAuthInfo());
+ stm.getBusinessEntity().addAll(values.get(i).getBusinessEntity());
+ pub.saveBusiness(stm);
+ }
+
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.ADMIN_SAVE_BUSINESS,
+ QueryStatus.SUCCESS, procTime);
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.ADMIN_SAVE_BUSINESS,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+
+ DispositionReport r = new DispositionReport();
+ return r;
+
}
@Override
@@ -1188,6 +1241,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
if (!((Publisher) requestor).isAdmin()) {
throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
}
+
for (int i = 0; i < values.size(); i++) {
//impersonate the user
AuthToken authToken = sec.getAuthToken(values.get(i).getPublisherID());
@@ -1379,6 +1433,9 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
throw drfm;
} catch (Exception ex) {
//possible that there is no config to return
+ logger.warn("Error caught, is there a replication config is avaiable? Returning a default config (no replication): " + ex.getMessage());
+ logger.debug("Error caught, is there a replication config is avaiable? Returning a default config (no replication): ", ex);
+
r.setCommunicationGraph(new CommunicationGraph());
Operator op = new Operator();
op.setOperatorNodeID(node);
@@ -1392,17 +1449,37 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
r.getOperator().add(op);
r.getCommunicationGraph().getNode().add(node);
r.getCommunicationGraph().getControlledMessage().add("*");
- logger.warn("Error caught, is there a replication config is avaiable? Returning a default config (no replication): " + ex.getMessage());
- logger.debug("Error caught, is there a replication config is avaiable? Returning a default config (no replication): ", ex);
- long procTime = System.currentTimeMillis() - startTime;
+ long procTime = System.currentTimeMillis() - startTime;
r.setSerialNumber(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmZ");
r.setTimeOfConfigurationUpdate(sdf.format(new Date()));
r.setRegistryContact(new org.uddi.repl_v3.ReplicationConfiguration.RegistryContact());
- //TODO pull from root business
- r.getRegistryContact().setContact(new Contact());
- r.getRegistryContact().getContact().getPersonName().add(new PersonName("Unknown", null));
+ try {
+ // pull from root business
+ if (!tx.isActive()) {
+ tx = em.getTransaction();
+ }
+
+ BusinessEntity rootbiz = em.find(BusinessEntity.class, AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ROOT_BUSINESS));
+ if (rootbiz != null) {
+
+ for (int i = 0; i < rootbiz.getContacts().size(); i++) {
+ Contact c = new Contact();
+ MappingModelToApi.mapContact(rootbiz.getContacts().get(i), c);
+ r.getRegistryContact().setContact(c);
+ break;
+ }
+
+ }
+ tx.rollback();
+ } catch (Exception ex1) {
+ logger.warn("unexpected error", ex1);
+ }
+ if (r.getRegistryContact().getContact()==null){
+ r.getRegistryContact().setContact(new Contact());
+ r.getRegistryContact().getContact().getPersonName().add(new PersonName("Unknown", null));
+ }
serviceCounter.update(JUDDIQuery.GET_REPLICATION_NODES,
QueryStatus.FAILED, procTime);
@@ -1415,7 +1492,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
r.setMaximumTimeToGetChanges(BigInteger.ONE);
r.setMaximumTimeToSyncRegistry(BigInteger.ONE);
- JAXB.marshal(r, System.out);
+ // JAXB.marshal(r, System.out);
return r;
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
index 481df3d..b100f05 100644
--- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
+++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
@@ -435,6 +435,21 @@ public class MappingModelToApi {
}
apiBusinessEntity.setDiscoveryURLs(apiDiscUrls);
}
+
+ public static void mapContact(org.apache.juddi.model.Contact modelContact,
+ org.uddi.api_v3.Contact apiContact) throws DispositionReportFaultMessage {
+ if (apiContact == null) {
+ apiContact = new org.uddi.api_v3.Contact();
+ }
+ apiContact.setUseType(modelContact.getUseType());
+
+ mapPersonNames(modelContact.getPersonNames(), apiContact.getPersonName());
+ mapContactDescriptions(modelContact.getContactDescrs(), apiContact.getDescription());
+ mapContactEmails(modelContact.getEmails(), apiContact.getEmail());
+ mapContactPhones(modelContact.getPhones(), apiContact.getPhone());
+ mapContactAddresses(modelContact.getAddresses(), apiContact.getAddress());
+
+ }
public static void mapContacts(List<org.apache.juddi.model.Contact> modelContactList,
org.uddi.api_v3.Contacts apiContacts,
@@ -453,14 +468,9 @@ public class MappingModelToApi {
for (org.apache.juddi.model.Contact modelContact : modelContactList) {
org.uddi.api_v3.Contact apiContact = new org.uddi.api_v3.Contact();
- apiContact.setUseType(modelContact.getUseType());
-
- mapPersonNames(modelContact.getPersonNames(), apiContact.getPersonName());
- mapContactDescriptions(modelContact.getContactDescrs(), apiContact.getDescription());
- mapContactEmails(modelContact.getEmails(), apiContact.getEmail());
- mapContactPhones(modelContact.getPhones(), apiContact.getPhone());
- mapContactAddresses(modelContact.getAddresses(), apiContact.getAddress());
-
+
+ mapContact(modelContact,apiContact);
+
apiContactList.add(apiContact);
}
apiBusinessEntity.setContacts(apiContacts);
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java b/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
index ce1d49c..794e1b5 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
@@ -82,6 +82,8 @@ public class BusinessEntity extends UddiEntity implements java.io.Serializable {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "businessEntity")
@OrderBy
public List<Contact> getContacts() {
+ if (this.contacts==null)
+ this.contacts = new ArrayList<Contact>();
return this.contacts;
}
public void setContacts(List<Contact> contacts) {
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-core/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/resources/messages.properties b/juddi-core/src/main/resources/messages.properties
index fe79f62..3428580 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -226,7 +226,7 @@ errors.save.maxBusinessesExceeded=The maximum allowed number of businesses are e
errors.save.maxServicesExceeded=The maximum allowed number of services are exceed for this business
errors.save.maxBindingsExceeded=The maximum allowed number of bindings are exceed for this service
errors.save.maxTModelsExceeded=The maximum allowed number of tmodels are exceed for this publisher
-errors.deletepublisher.AdminReqd=An account must have administrative privileges to delete publishers
+errors.deletepublisher.AdminReqd=An account must have administrative privileges to perform this action
errors.publisher.NullInput=The Publisher structure cannot be blank
errors.publisher.NoAuthorizedName=A valid publisher authorized name was not specified
errors.publisher.NoPublisherName=A valid publisher name was not specified
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
index 3fc49d7..e2a5497 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
@@ -87,7 +87,10 @@ public class API_110_FindBusinessTest
Assert.fail("Could not obtain authInfo token.");
}
}
-
+ /**
+ * JUDDI-398
+ * JUDDI-881
+ */
@Test
public void findBusinessByTModelBag() {
try {
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddi-gui/src/main/webapp/csrf.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/csrf.jsp b/juddi-gui/src/main/webapp/csrf.jsp
index 7fcab9e..0ae7f88 100644
--- a/juddi-gui/src/main/webapp/csrf.jsp
+++ b/juddi-gui/src/main/webapp/csrf.jsp
@@ -32,7 +32,10 @@
session.removeAttribute("nonce");
response.sendRedirect("index.jsp");
UddiHub.log.warn( "CSRF Test failed, no nonce guid." + request.getRemoteAddr() + request.getRemoteUser());
- throw new CrossSiteRequestForgeryException();
+ //throw new CrossSiteRequestForgeryException();
+ response.sendRedirect("index.jsp");
+
+ return;
} else {
String noncestr = (String) session.getAttribute("nonce");
@@ -40,7 +43,10 @@
//no session variable to test against, reject it
UddiHub.log.warn( "CSRF Test failed, no session guid." + request.getRemoteAddr() + request.getRemoteUser());
session.removeAttribute("nonce");
- throw new CrossSiteRequestForgeryException("Cross Site Request Forgery");
+ response.sendRedirect("index.jsp");
+
+ return;
+ //throw new CrossSiteRequestForgeryException("Cross Site Request Forgery");
}
String postedstr = request.getParameter("nonce");
@@ -58,7 +64,9 @@
//mismatch, reject it
UddiHub.log.warn( "CSRF Test failed, session did not match nonce guid." + request.getRemoteAddr() + request.getRemoteUser());
session.removeAttribute("nonce");
- throw new CrossSiteRequestForgeryException("Cross Site Request Forgery");
+ response.sendRedirect("index.jsp");
+ return;
+ //throw new CrossSiteRequestForgeryException("Cross Site Request Forgery");
}
}
} else {
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
new file mode 100644
index 0000000..997e204
--- /dev/null
+++ b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2013 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juddi.adminconsole.hub;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.GregorianCalendar;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.bind.JAXB;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.api_v3.AdminSaveBusiness;
+import org.apache.juddi.api_v3.AdminSaveBusinessWrapper;
+import org.apache.juddi.api_v3.AdminSaveSubscriptionRequest;
+import org.apache.juddi.api_v3.AdminSaveTModel;
+import org.apache.juddi.api_v3.AdminSaveTModelWrapper;
+import org.apache.juddi.api_v3.Clerk;
+import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SyncSubscription;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.PersonName;
+import org.uddi.api_v3.TModel;
+import org.uddi.repl_v3.CommunicationGraph;
+import org.uddi.repl_v3.Operator;
+import org.uddi.repl_v3.OperatorStatusType;
+import org.uddi.repl_v3.ReplicationConfiguration;
+import org.uddi.sub_v3.CoveragePeriod;
+import org.uddi.sub_v3.GetSubscriptionResults;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+
+/**
+ * This class generates XML as String objects for UDDI requests. This is used
+ * from the "advanced" web pages
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class JUDDIRequestsAsXML {
+
+ private static String PrettyPrintXML(String input) {
+ if (input == null || input.length() == 0) {
+ return "";
+ }
+ try {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ //initialize StreamResult with File object to save to file
+ StreamResult result = new StreamResult(new StringWriter());
+ StreamSource source = new StreamSource(new StringReader(input.trim()));
+ transformer.transform(source, result);
+ String xmlString = result.getWriter().toString();
+ return (xmlString);
+ } catch (Exception ex) {
+ }
+ return null;
+ }
+
+ public static String getSampleXML(String method) {
+ StringWriter sw = new StringWriter();
+
+ if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+ SaveClientSubscriptionInfo obj = new SaveClientSubscriptionInfo();
+ obj.getClientSubscriptionInfo().add(new ClientSubscriptionInfo());
+ obj.getClientSubscriptionInfo().get(0).setFromClerk(new Clerk());
+ obj.getClientSubscriptionInfo().get(0).setToClerk(new Clerk());
+ obj.getClientSubscriptionInfo().get(0).setSubscriptionKey("key");
+
+ JAXB.marshal(obj, sw);
+ }
+ if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+ SyncSubscription obj = new SyncSubscription();
+ obj.getGetSubscriptionResultsList().add(new GetSubscriptionResults());
+ obj.getGetSubscriptionResultsList().get(0).setSubscriptionKey("key");
+ obj.getGetSubscriptionResultsList().get(0).setCoveragePeriod(new CoveragePeriod());
+ DatatypeFactory newInstance;
+ try {
+ newInstance = DatatypeFactory.newInstance();
+ obj.getGetSubscriptionResultsList().get(0).getCoveragePeriod().setEndPoint(newInstance.newXMLGregorianCalendar(new GregorianCalendar()));
+ obj.getGetSubscriptionResultsList().get(0).getCoveragePeriod().setStartPoint(newInstance.newXMLGregorianCalendar(new GregorianCalendar()));
+
+ } catch (DatatypeConfigurationException ex) {
+ Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ JAXB.marshal(obj, sw);
+ }
+ if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+ AdminSaveBusiness obj = new AdminSaveBusiness();
+ obj.getValues().add(new AdminSaveBusinessWrapper());
+ obj.getValues().get(0).setPublisherID("username");
+ obj.getValues().get(0).getBusinessEntity().add(new BusinessEntity());
+ obj.getValues().get(0).getBusinessEntity().get(0).getName().add(new Name("Business Name", "en"));
+ JAXB.marshal(obj, sw);
+ }
+ if (method.equalsIgnoreCase("admin_SaveTModel")) {
+ AdminSaveTModel obj = new AdminSaveTModel();
+ obj.getValues().add(new AdminSaveTModelWrapper());
+ obj.getValues().get(0).setPublisherID("username");
+ obj.getValues().get(0).getTModel().add(new TModel());
+ obj.getValues().get(0).getTModel().get(0).setName(new Name("TModel Name", "en"));
+ JAXB.marshal(obj, sw);
+ }
+
+ if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+ AdminSaveSubscriptionRequest obj = new AdminSaveSubscriptionRequest();
+ obj.setPublisherOrUsername("username");
+ obj.getSubscriptions().add(new Subscription());
+ obj.getSubscriptions().get(0).setSubscriptionFilter(new SubscriptionFilter());
+ obj.getSubscriptions().get(0).setBrief(Boolean.TRUE);
+ obj.getSubscriptions().get(0).getSubscriptionFilter().setFindBusiness(new FindBusiness());
+ //obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness()
+ JAXB.marshal(obj, sw);
+ }
+
+ if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+ ReplicationConfiguration replicationConfiguration = new ReplicationConfiguration();
+ replicationConfiguration.setCommunicationGraph(new CommunicationGraph());
+ String thisnode = "NODEID";
+ try {
+ thisnode = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+ } catch (ConfigurationException ex) {
+ Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ replicationConfiguration.getCommunicationGraph().getNode().add(thisnode);
+ Operator op = new Operator();
+ op.setOperatorNodeID(thisnode);
+
+ op.setOperatorStatus(OperatorStatusType.NORMAL);
+ String url = "http://localhost:8080/juddiv3/services/replication";
+ try {
+ url = AppConfig.getConfiguration().getString(Property.DEFAULT_BASE_URL_SECURE) + "/services/replication";
+ } catch (ConfigurationException ex) {
+ Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ op.setSoapReplicationURL(url);
+
+ replicationConfiguration.getOperator().add(op);
+ replicationConfiguration.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ replicationConfiguration.getRegistryContact().setContact(new Contact());
+ replicationConfiguration.getRegistryContact().getContact().getPersonName().add(new PersonName("UNKNOWN", "en"));
+
+ JAXB.marshal(replicationConfiguration, sw);
+ }
+
+ return PrettyPrintXML(sw.toString());
+ }
+
+ public static Object getObjectJuddi(String method, String content) {
+ StringReader sr = new StringReader(content);
+
+ if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+ return JAXB.unmarshal(sr, SaveClientSubscriptionInfo.class);
+ }
+ if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+ return JAXB.unmarshal(sr, SyncSubscription.class);
+ }
+ if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+ return JAXB.unmarshal(sr, AdminSaveBusiness.class);
+ }
+ if (method.equalsIgnoreCase("admin_SaveTModel")) {
+ //System.out.println(content);
+ return JAXB.unmarshal(sr, AdminSaveTModel.class);
+ }
+
+ if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+ return JAXB.unmarshal(sr, AdminSaveSubscriptionRequest.class);
+ }
+
+ if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+ return JAXB.unmarshal(sr, ReplicationConfiguration.class);
+ }
+
+ return null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
index b764e77..e21027b 100644
--- a/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
+++ b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
@@ -21,6 +21,8 @@ import java.io.StringReader;
import java.io.StringWriter;
import java.net.URL;
import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.ServletContext;
@@ -34,6 +36,7 @@ import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Holder;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
@@ -61,7 +64,15 @@ import org.apache.juddi.v3.client.transport.Transport;
import org.apache.juddi.v3_service.JUDDIApiPortType;
import org.apache.juddi.adminconsole.AES;
import org.apache.juddi.adminconsole.resources.ResourceLoader;
+import org.apache.juddi.api_v3.AdminSaveBusiness;
+import org.apache.juddi.api_v3.AdminSaveSubscriptionRequest;
+import org.apache.juddi.api_v3.AdminSaveTModel;
+import org.apache.juddi.api_v3.ClerkList;
import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.DeleteClerk;
+import org.apache.juddi.api_v3.DeleteNode;
+import org.apache.juddi.api_v3.NodeList;
+import org.apache.juddi.api_v3.SubscriptionWrapper;
import org.apache.juddi.model.BindingTemplate;
import org.apache.juddi.subscription.notify.SMTPNotifier;
import org.uddi.api_v3.AuthToken;
@@ -72,6 +83,7 @@ import org.uddi.api_v3.FindBusiness;
import org.uddi.api_v3.FindQualifiers;
import org.uddi.api_v3.GetAuthToken;
import org.uddi.api_v3.Name;
+import org.uddi.repl_v3.ReplicationConfiguration;
import org.uddi.sub_v3.Subscription;
import org.uddi.sub_v3.SubscriptionResultsList;
import org.uddi.subr_v3.NotifySubscriptionListener;
@@ -350,28 +362,39 @@ public class UddiAdminHub {
if (action.equalsIgnoreCase("send_EmailTest")) {
return sendTestEmail(parameters);
}
- /*if (action.equalsIgnoreCase("get_AllNodes")) {
+ if (action.equalsIgnoreCase("get_AllNodes")) {
+ return getAllNodes(parameters);
}
if (action.equalsIgnoreCase("get_AllClerks")) {
+ return getAllClerks(parameters);
}
if (action.equalsIgnoreCase("delete_Node")) {
+ return deleteNode(parameters);
}
if (action.equalsIgnoreCase("delete_Clerk")) {
+ return deleteClerk(parameters);
}
if (action.equalsIgnoreCase("admin_DeleteSubscription")) {
+ return deleteSubscription(parameters);
}
if (action.equalsIgnoreCase("admin_SaveBusiness")) {
+ return adminSaveBusiness(parameters);
}
if (action.equalsIgnoreCase("admin_SaveTModel")) {
+ return adminSaveTmodel(parameters);
}
if (action.equalsIgnoreCase("get_AllClientSubscriptionInfo")) {
+ return getAllClientSubscriptionInfo(parameters);
}
if (action.equalsIgnoreCase("set_ReplicationNodes")) {
+ return setReplicationConfig(parameters);
}
if (action.equalsIgnoreCase("get_ReplicationNodes")) {
+ return getReplicationNodes(parameters);
}
if (action.equalsIgnoreCase("admin_SaveSubscription")) {
- }*/
+ return adminSaveSubscription(parameters);
+ }
} catch (Exception ex) {
return "Error!" + HandleException(ex);
}
@@ -465,14 +488,15 @@ public class UddiAdminHub {
private String sendTestEmail(HttpServletRequest parameters) {
try {
-
+
String to = parameters.getParameter("send_EmailTestEMAIL");
- if (!to.startsWith("mailto:"))
+ if (!to.startsWith("mailto:")) {
to = "mailto:" + to;
+ }
BindingTemplate modellbt = new BindingTemplate("test", null, "endpoint", to, null, null, null, null, null);
org.apache.juddi.subscription.notify.SMTPNotifier smtp = new SMTPNotifier(modellbt);
NotifySubscriptionListener body = new NotifySubscriptionListener();
-
+
body.setSubscriptionResultsList(new SubscriptionResultsList());
body.getSubscriptionResultsList().setSubscription(new Subscription());
body.getSubscriptionResultsList().getSubscription().setSubscriptionKey("TEST");
@@ -483,6 +507,272 @@ public class UddiAdminHub {
}
}
+ private String getAllNodes(HttpServletRequest parameters) {
+ NodeList allNodes = null;
+ try {
+
+ allNodes = juddi.getAllNodes(GetToken());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ allNodes = juddi.getAllNodes(GetToken());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(allNodes, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String getAllClerks(HttpServletRequest parameters) {
+ ClerkList allNodes = null;
+ try {
+
+ allNodes = juddi.getAllClerks(GetToken());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ allNodes = juddi.getAllClerks(GetToken());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(allNodes, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String getAllClientSubscriptionInfo(HttpServletRequest parameters) {
+ List<SubscriptionWrapper> allClientSubscriptionInfo = null;
+ try {
+
+ allClientSubscriptionInfo = juddi.getAllClientSubscriptionInfo(GetToken());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ allClientSubscriptionInfo = juddi.getAllClientSubscriptionInfo(GetToken());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(allClientSubscriptionInfo, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String getReplicationNodes(HttpServletRequest parameters) {
+ ReplicationConfiguration cfg = null;
+ try {
+
+ cfg = juddi.getReplicationNodes(GetToken());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ cfg = juddi.getReplicationNodes(GetToken());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(cfg, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String deleteNode(HttpServletRequest parameters) {
+ DeleteNode cfg = new DeleteNode();
+ cfg.setAuthInfo(GetToken());
+ cfg.setNodeID(parameters.getParameter("delete_NodeName"));
+ try {
+
+ juddi.deleteNode(cfg);
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ cfg.setAuthInfo(GetToken());
+ juddi.deleteNode(cfg);
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+
+ return "Success";
+ }
+
+ private String deleteSubscription(HttpServletRequest parameters) {
+ List<String> keys = new ArrayList<String>();
+ keys.add(parameters.getParameter("admin_DeleteSubscriptionKey"));
+ try {
+
+ juddi.adminDeleteSubscription(GetToken(), keys);
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ juddi.adminDeleteSubscription(GetToken(), keys);
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+
+ return "Success";
+ }
+
+ private String deleteClerk(HttpServletRequest parameters) {
+ DeleteClerk cfg = new DeleteClerk();
+ cfg.setAuthInfo(GetToken());
+ cfg.setClerkID(parameters.getParameter("delete_ClerkName"));
+ try {
+
+ juddi.deleteClerk(cfg);
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ cfg.setAuthInfo(GetToken());
+ juddi.deleteClerk(cfg);
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+
+ return "Success";
+ }
+
+ private String setReplicationConfig(HttpServletRequest parameters) {
+ ReplicationConfiguration cfg = (ReplicationConfiguration) JUDDIRequestsAsXML.getObjectJuddi("set_ReplicationNodes", parameters.getParameter("set_ReplicationNodesXML"));
+ DispositionReport setReplicationNodes = null;
+ try {
+
+ setReplicationNodes = juddi.setReplicationNodes(GetToken(), cfg);
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ setReplicationNodes = juddi.setReplicationNodes(GetToken(), cfg);
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(setReplicationNodes, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String adminSaveBusiness(HttpServletRequest parameters) {
+ //admin_SaveBusiness
+ AdminSaveBusiness cfg = (AdminSaveBusiness) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveBusiness", parameters.getParameter("admin_SaveBusinessXML"));
+ DispositionReport setReplicationNodes = null;
+ try {
+
+ setReplicationNodes = juddi.adminSaveBusiness(GetToken(), cfg.getValues());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ setReplicationNodes = juddi.adminSaveBusiness(GetToken(), cfg.getValues());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(setReplicationNodes, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String adminSaveTmodel(HttpServletRequest parameters) {
+ //admin_SaveTModel
+ AdminSaveTModel cfg = (AdminSaveTModel) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveTModel", parameters.getParameter("admin_SaveTModelXML"));
+ //JAXB.marshal(cfg, System.out);
+ DispositionReport setReplicationNodes = null;
+ try {
+
+ setReplicationNodes = juddi.adminSaveTModel(GetToken(), cfg.getValues());
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ setReplicationNodes = juddi.adminSaveTModel(GetToken(), cfg.getValues());
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(setReplicationNodes, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
+ private String adminSaveSubscription(HttpServletRequest parameters) {
+ //
+ AdminSaveSubscriptionRequest cfg = (AdminSaveSubscriptionRequest) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveSubscription", parameters.getParameter("admin_SaveSubscriptionXML"));
+
+ Holder<List<Subscription>> holder = new Holder<List<Subscription>>(cfg.getSubscriptions());
+ try {
+
+ juddi.adminSaveSubscription(GetToken(), cfg.getPublisherOrUsername(), holder);
+ } catch (Exception ex) {
+
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ try {
+ juddi.adminSaveSubscription(GetToken(), cfg.getPublisherOrUsername(), holder);
+ } catch (Exception ex1) {
+ return HandleException(ex1);
+ }
+ } else {
+ return HandleException(ex);
+ }
+ }
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(holder, sw);
+ return StringEscapeUtils.escapeHtml(sw.toString());
+ }
+
public enum AuthStyle {
/**
@@ -564,7 +854,7 @@ public class UddiAdminHub {
try {
d = juddi.getAllPublisherDetail(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
@@ -632,7 +922,7 @@ public class UddiAdminHub {
try {
d = juddi.getPublisherDetail(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
@@ -671,7 +961,7 @@ public class UddiAdminHub {
try {
d = juddi.invokeSyncSubscription(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
@@ -770,7 +1060,7 @@ public class UddiAdminHub {
try {
d = juddi.saveClientSubscriptionInfo(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
}
} else {
@@ -880,7 +1170,7 @@ public class UddiAdminHub {
try {
d = juddi.savePublisher(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
return HandleException(ex);
@@ -902,7 +1192,7 @@ public class UddiAdminHub {
try {
juddi.adminDeleteTModel(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
return HandleException(ex);
@@ -924,7 +1214,7 @@ public class UddiAdminHub {
try {
juddi.deleteClientSubscriptionInfo(sb);
} catch (Exception ex1) {
- return HandleException(ex);
+ return HandleException(ex1);
}
} else {
@@ -1015,4 +1305,146 @@ public class UddiAdminHub {
return "Unexpected error";
}
+ public String SendAdvanced(Object request, String method) {
+ StringWriter sw = new StringWriter();
+ try {
+ if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+ SaveClientSubscriptionInfo x = (SaveClientSubscriptionInfo) request;
+ x.setAuthInfo(GetToken());
+ ClientSubscriptionInfoDetail saveClientSubscriptionInfo = null;
+ try {
+ saveClientSubscriptionInfo = juddi.saveClientSubscriptionInfo(x);
+ sw.append("Success:<br>");
+ JAXB.marshal(saveClientSubscriptionInfo, sw);
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ x.setAuthInfo(GetToken());
+ saveClientSubscriptionInfo = juddi.saveClientSubscriptionInfo(x);
+ sw.append("Success:<br>");
+ JAXB.marshal(saveClientSubscriptionInfo, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+
+ }
+ if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+ SyncSubscription x = (SyncSubscription) request;
+ x.setAuthInfo(GetToken());
+ SyncSubscriptionDetail invokeSyncSubscription = null;
+ try {
+ invokeSyncSubscription = juddi.invokeSyncSubscription(x);
+ sw.append("Success:<br>");
+ JAXB.marshal(invokeSyncSubscription, sw);
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ x.setAuthInfo(GetToken());
+ invokeSyncSubscription = juddi.invokeSyncSubscription(x);
+ sw.append("Success:<br>");
+ JAXB.marshal(invokeSyncSubscription, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+
+ }
+ if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+ AdminSaveBusiness x = (AdminSaveBusiness) request;
+
+ DispositionReport adminSaveBusiness = null;
+
+ try {
+ adminSaveBusiness = juddi.adminSaveBusiness(GetToken(), x.getValues());
+ sw.append("Success:<br>");
+ JAXB.marshal(adminSaveBusiness, sw);
+
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ x.setAuthInfo(GetToken());
+ adminSaveBusiness = juddi.adminSaveBusiness(GetToken(), x.getValues());
+ sw.append("Success:<br>");
+ JAXB.marshal(adminSaveBusiness, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+ }
+ if (method.equalsIgnoreCase("admin_SaveTModel")) {
+ AdminSaveTModel x = (AdminSaveTModel) request;
+
+ DispositionReport adminSaveTModel = null;
+ try {
+ adminSaveTModel = juddi.adminSaveTModel(GetToken(), x.getValues());
+ sw.append("Success:<br>");
+ JAXB.marshal(adminSaveTModel, sw);
+
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+ x.setAuthInfo(GetToken());
+ adminSaveTModel = juddi.adminSaveTModel(GetToken(), x.getValues());
+ sw.append("Success:<br>");
+ JAXB.marshal(adminSaveTModel, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+
+ }
+
+ if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+ AdminSaveSubscriptionRequest x = (AdminSaveSubscriptionRequest) request;
+ Holder<List<Subscription>> holder = new Holder<List<Subscription>>(x.getSubscriptions());
+ try {
+ juddi.adminSaveSubscription(GetToken(), x.getPublisherOrUsername(), holder);
+ sw.append("Success:<br>");
+ JAXB.marshal(holder, sw);
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+
+ juddi.adminSaveSubscription(GetToken(), x.getPublisherOrUsername(), holder);
+ sw.append("Success:<br>");
+ JAXB.marshal(holder, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+ }
+ if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+ ReplicationConfiguration x = (ReplicationConfiguration) request;
+ // Holder<List<Subscription>> holder = new Holder<List<Subscription>>(x.getSubscriptions());
+ try {
+ DispositionReport setReplicationNodes = juddi.setReplicationNodes(GetToken(), x);
+ sw.append("Success:<br>");
+ JAXB.marshal(setReplicationNodes, sw);
+ } catch (Exception ex) {
+ if (isExceptionExpiration(ex)) {
+ token = null;
+
+ DispositionReport setReplicationNodes = juddi.setReplicationNodes(GetToken(), x);
+ sw.append("Success:<br>");
+ JAXB.marshal(setReplicationNodes, sw);
+
+ } else {
+ throw ex;
+ }
+ }
+ }
+
+ } catch (Exception ex) {
+ return HandleException(ex);
+ }
+ return null;
+
+ }
+
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddiv3-war/src/main/webapp/admin/admin.jsp
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/webapp/admin/admin.jsp b/juddiv3-war/src/main/webapp/admin/admin.jsp
index 269539b..f6cd8d6 100644
--- a/juddiv3-war/src/main/webapp/admin/admin.jsp
+++ b/juddiv3-war/src/main/webapp/admin/admin.jsp
@@ -38,29 +38,43 @@
<%=ResourceLoader.GetResource(session, "pages.admin.content")%>
<br>
<select onchange="toggledivs();" id="divselector">
- <option>adminDelete_tmodel</option>
+
+ <option>------ Subscription Management -----</option>
+ <option>get_AllClientSubscriptionInfo</option>
<option>delete_ClientSubscriptionInfo</option>
- <option>delete_publisher</option>
- <option>getAllPublisherDetail</option>
- <option>get_publisherDetail</option>
<option>invoke_SyncSubscription</option>
- <option>save_Clerk</option>
<option>save_ClientSubscriptionInfo</option>
- <option>save_Node</option>
- <option>save_publisher</option>
- <option>send_EmailTest</option>
+ <option>admin_SaveSubscription</option>
+ <option>admin_DeleteSubscription</option>
+
<option>get_AllNodes</option>
- <option>get_AllClerks</option>
+ <option>save_Node</option>
<option>delete_Node</option>
+
+ <option>get_AllClerks</option>
+ <option>save_Clerk</option>
<option>delete_Clerk</option>
- <option>admin_DeleteSubscription</option>
- <option>admin_SaveBusiness</option>
- <option>admin_SaveTModel</option>
- <option>get_AllClientSubscriptionInfo</option>
+
+ <option>------ Publisher/User Management -----</option>
+ <option>getAllPublisherDetail</option>
+ <option>get_publisherDetail</option>
+ <option>delete_publisher</option>
+ <option>save_publisher</option>
+
+
+
+ <option>------ Node Management -----</option>
<option>set_ReplicationNodes</option>
<option>get_ReplicationNodes</option>
- <option>admin_SaveSubscription</option>
+
+ <option>------ Backup/Restore Management -----</option>
+ <option>admin_SaveBusiness</option>
+ <option>admin_SaveTModel</option>
+ <option>adminDelete_tmodel</option>
+ <option>send_EmailTest</option>
+
+
</select>
<div>
@@ -149,17 +163,51 @@
<div id="send_EmailTest" style="display:none">
<%=ResourceLoader.GetResource(session, "items.email")%> <input type="text" id="send_EmailTestEMAIL" class="forminput" placeholder="Enter email"><br>
</div>
- <div id="get_AllNodes" style="display:none"></div>
- <div id="get_AllClerks" style="display:none"></div>
- <div id="delete_Node" style="display:none"></div>
- <div id="delete_Clerk" style="display:none"></div>
- <div id="admin_DeleteSubscription" style="display:none"></div>
- <div id="admin_SaveBusiness" style="display:none"></div>
- <div id="admin_SaveTModel" style="display:none"></div>
- <div id="get_AllClientSubscriptionInfo" style="display:none"></div>
- <div id="set_ReplicationNodes" style="display:none"></div>
- <div id="get_ReplicationNodes" style="display:none"></div>
- <div id="admin_SaveSubscription" style="display:none"></div>
+ <div id="get_AllNodes" style="display:none">
+ No input required.
+ </div>
+ <div id="get_AllClerks" style="display:none">
+ No input required.
+ </div>
+ <div id="delete_Node" style="display:none">
+ Node name <input type="text" id="delete_NodeName" class="forminput" placeholder="Node name"><br>
+ </div>
+ <div id="delete_Clerk" style="display:none">
+ Clerk name <input type="text" id="delete_ClerkName" class="forminput" placeholder="Clerk name"><br>
+ </div>
+ <div id="admin_DeleteSubscription" style="display:none">
+ Subscription Key <input type="text" id="admin_DeleteSubscriptionKey" class="forminput" placeholder="Subscription Key"><br>
+ </div>
+ <div id="admin_SaveBusiness" style="display:none">
+ <%=ResourceLoader.GetResource(session, "items.noauthtoken")%> <br>
+ <textarea rows="4" cols="80" id="admin_SaveBusinessXML" class="forminput" placeholder="Enter save business XML"></textarea>
+
+ </div>
+ <div id="admin_SaveTModel" style="display:none">
+ <%=ResourceLoader.GetResource(session, "items.noauthtoken")%> <br>
+ <textarea rows="4" cols="80" id="admin_SaveTModelXML" class="forminput" placeholder="Enter save tmodel XML"></textarea>
+
+ </div>
+ <div id="get_AllClientSubscriptionInfo" style="display:none">
+ No input required.
+ </div>
+ <div id="set_ReplicationNodes" style="display:none">
+
+ <%=ResourceLoader.GetResource(session, "items.noauthtoken")%> <br>
+ <textarea rows="4" cols="80" id="set_ReplicationNodesXML" class="forminput" placeholder="Enter replication config XML"></textarea>
+
+ </div>
+ <div id="get_ReplicationNodes" style="display:none">
+ No input required.
+ </div>
+ <div id="admin_SaveSubscription" style="display:none">
+
+ <%=ResourceLoader.GetResource(session, "items.noauthtoken")%> <br>
+ <textarea rows="4" cols="80" id="admin_SaveSubscriptionXML" class="forminput" placeholder="Enter save subscription XML"></textarea>
+
+ </div>
+
+
</div>
<script type="text/javascript">
@@ -191,9 +239,58 @@
$("#set_ReplicationNodes").hide();
$("#get_ReplicationNodes").hide();
$("#admin_SaveSubscription").hide();
-
+
$("#" + x).show();
+
+ //get a samle xml doc
+
+ // var x = $("#" + select).val();
+ var url = 'ajax/advanced.jsp';
+
+ var postbackdata = new Array();
+
+
+ postbackdata.push({
+ name: "advancedaction",
+ value: "getdefaultrequest"
+ });
+
+ postbackdata.push({
+ name: "nonce",
+ value: $("#nonce").val()
+ });
+
+
+ postbackdata.push({
+ name: "method",
+ value: x
+ });
+
+
+
+ var request = $.ajax({
+ url: url,
+ type: "POST",
+ // data" + i18n_type + ": "html",
+ cache: false,
+ // processData: false,f
+ data: postbackdata
+ });
+
+
+ request.done(function(msg) {
+ window.console && console.log('postback done ' + url);
+ //trim it
+ $("#" + x + "XML").html(msg.replace(/^\s+|\s+$/g, ''));
+ });
+
+ request.fail(function(jqXHR, textStatus) {
+ window.console && console.log('postback failed ' + url + ' ' + jqXHR.responseText + textStatus);
+ //$("#adminresults").html(jqXHR.responseText + textStatus);
+
+
+ });
}
toggledivs();//run when the page loads
function submitform() {
@@ -215,9 +312,9 @@
$(".forminput").each(function()
{
var id = $(this).attr("id");
- var value = $(this).text();
+ var value = $(this).val();
if (value === null || value === "" || value === undefined)
- value = $(this).val();
+ value=$(this).text();
postbackdata.push({
name: id,
value: value
@@ -263,7 +360,9 @@
<%=ResourceLoader.GetResource(session, "pages.admin.notes")%>
<br>
- <a href="javascript:submitform();" class="btn btn-primary"><%=ResourceLoader.GetResource(session, "actions.go")%></a>
+ <a href="javascript:submitform();" class="btn btn-primary"><%=ResourceLoader.GetResource(session, "actions.go")%></a><br><br>
+ <br>
+
</div>
</div>
http://git-wip-us.apache.org/repos/asf/juddi/blob/5fb73fd3/juddiv3-war/src/main/webapp/admin/ajax/advanced.jsp
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/webapp/admin/ajax/advanced.jsp b/juddiv3-war/src/main/webapp/admin/ajax/advanced.jsp
new file mode 100644
index 0000000..deac59a
--- /dev/null
+++ b/juddiv3-war/src/main/webapp/admin/ajax/advanced.jsp
@@ -0,0 +1,39 @@
+<%--
+ Document : advanced
+ Created on : Aug 9, 2013, 4:09:06 PM
+ Author : Alex O'Ree
+--%>
+
+<%@page import="org.apache.juddi.adminconsole.hub.JUDDIRequestsAsXML"%>
+<%@page import="org.apache.juddi.adminconsole.resources.ResourceLoader"%>
+<%@page import="org.apache.juddi.adminconsole.PostBackConstants"%>
+<%@page import="org.apache.juddi.adminconsole.hub.UddiAdminHub"%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<%@include file="../csrf.jsp" %>
+<%
+ if (request.getMethod().equalsIgnoreCase("POST")) {
+ String action = request.getParameter("advancedaction");
+ if (action != null) {
+ String method = request.getParameter("method");
+
+ UddiAdminHub x = UddiAdminHub.getInstance(application,session);
+ if (action.equalsIgnoreCase("getdefaultrequest")) {
+
+
+ out.write(JUDDIRequestsAsXML.getSampleXML(method));
+
+ } else if (action.equalsIgnoreCase("senddata")) {
+ Object j=JUDDIRequestsAsXML.getObjectJuddi(method, request.getParameter("content"));
+ String msg=(x.SendAdvanced(j, method));
+ if (msg.contains(ResourceLoader.GetResource(session, "errors.generic")))
+ response.setStatus(406);
+ out.write(msg);
+ }
+ }
+
+
+
+ }
+
+
+%>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org