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/03/26 02:17:48 UTC

svn commit: r1460942 [1/17] - in /juddi/branches/juddi-3.2.x: juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/ juddi-gui-dsig/ juddi-gui-dsig/nbproject/ juddi-gui-dsig/nbproject/configs/ juddi-gui-dsig/src/ juddi-gui-dsig/src/org/ juddi-gu...

Author: alexoree
Date: Tue Mar 26 01:17:45 2013
New Revision: 1460942

URL: http://svn.apache.org/r1460942
Log:
initial commit of the new juddi gui and client side digital signature support.

Added:
    juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/
    juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/DigSigUtil.java
    juddi/branches/juddi-3.2.x/juddi-gui/   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/applet.policy
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/build.xml
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/index.html
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/manifest.mf
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-applet.jnlp
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-application.jnlp
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/build-impl.xml
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/configs/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/configs/JWS_generated.properties
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/genfiles.properties
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/jnlp-impl.xml
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/project.properties
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/nbproject/project.xml
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/juddi/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/juddi/gui/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/juddi/gui/dsig/
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/juddi/gui/dsig/XmlSignatureApplet.form
    juddi/branches/juddi-3.2.x/juddi-gui-dsig/src/org/apache/juddi/gui/dsig/XmlSignatureApplet.java
    juddi/branches/juddi-3.2.x/juddi-gui/build.xml
    juddi/branches/juddi-3.2.x/juddi-gui/findbugs.xml
    juddi/branches/juddi-3.2.x/juddi-gui/junit-3.8.2.jar   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/license/
    juddi/branches/juddi-3.2.x/juddi-gui/license/BSD3.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/Bootstrap.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/JEditable.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/Jquery.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/MIT-LICENSE.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/jsCrypto.txt
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/ant-deploy.xml
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/build-impl.xml
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/genfiles.properties
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/project.properties
    juddi/branches/juddi-3.2.x/juddi-gui/nbproject/project.xml
    juddi/branches/juddi-3.2.x/juddi-gui/src/
    juddi/branches/juddi-3.2.x/juddi-gui/src/conf/
    juddi/branches/juddi-3.2.x/juddi-gui/src/conf/MANIFEST.MF
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/META-INF/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/META-INF/uddi.xml
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PagableContainer.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/SaveBusinessPostbackHelper.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/StartupServlet.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/UddiHub.java
    juddi/branches/juddi-3.2.x/juddi-gui/test/
    juddi/branches/juddi-3.2.x/juddi-gui/web/
    juddi/branches/juddi-3.2.x/juddi-gui/web/META-INF/
    juddi/branches/juddi-3.2.x/juddi-gui/web/META-INF/config.properties
    juddi/branches/juddi-3.2.x/juddi-gui/web/META-INF/context.xml
    juddi/branches/juddi-3.2.x/juddi-gui/web/WEB-INF/
    juddi/branches/juddi-3.2.x/juddi-gui/web/WEB-INF/web.xml
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/businessdetails.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/businesssearch.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/deletebusiness.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/deleteservice.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/deletetmodel.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/loginpost.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/saveFromXML.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/savebusiness.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/saveservicedetails.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/savetmodel.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/search.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/servicedetails.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/servicelist.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/servicesearch.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/tmodel.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/tmodelsearch.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/toXML.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/applets/
    juddi/branches/juddi-3.2.x/juddi-gui/web/applets/juddi-gui-dsig.jar   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/businessBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/businessEditor2.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/csrf.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap-responsive.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap-responsive.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/animated-overlay.gif   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-icons_222222_256x240.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-icons_228ef1_256x240.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-icons_ef8c08_256x240.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-icons_ffd27a_256x240.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/images/ui-icons_ffffff_256x240.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/jquery-ui-1.10.1.custom.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/ui-lightness/jquery-ui-1.10.1.custom.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/favicon.ico   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/header-bottom.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/header-top.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/help/
    juddi/branches/juddi-3.2.x/juddi-gui/web/help/index.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/bigrollergreen.gif   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/glyphicons-halflings-white.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/glyphicons-halflings.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/juddi_logo_v2.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/logo.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/img/logo2.png   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/index.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/bootstrap.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/bootstrap.min.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/businessEditor.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/businesssearch.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/jquery-1.9.1.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/jquery-ui-1.10.1.custom.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/jquery-ui-1.10.1.custom.min.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/jquery.jeditable.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/main.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/serviceBrowse.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/serviceEditor.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/tmodeledit.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/tmodelsearch.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/login.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/logout.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/publisherBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/search.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/serviceBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/serviceEditor.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/settings.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/signer.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelEditor.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelPartitions.jsp

Added: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/DigSigUtil.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/DigSigUtil.java?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/DigSigUtil.java (added)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/crypto/DigSigUtil.java Tue Mar 26 01:17:45 2013
@@ -0,0 +1,594 @@
+/*
+ * 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.v3.client.crypto;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.net.URL;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.KeyStore;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import javax.xml.bind.JAXB;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.DigestMethod;
+import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
+import javax.xml.crypto.dsig.XMLSignature;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.dom.DOMValidateContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.keyinfo.X509Data;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * A utility class for signing and verifying JAXB Objects, such as UDDI
+ * entities.
+ *
+ * Notes: This class only supports elements that are signed once. Multiple
+ * signature are not currently support.
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree </a>
+ */
+public final class DigSigUtil {
+
+    public DigSigUtil() {
+    }
+    private Log logger = LogFactory.getLog(this.getClass());
+
+    public void put(String key, String value) {
+        map.put(key, value);
+    }
+
+    /**
+     * clears the configuration for reuse
+     */
+    public void clear() {
+        map.clear();
+    }
+    private Properties map = new Properties();
+    /**
+     * This is the location of the keystore
+     *
+     * If referencing a Windows certificate store, use WINDOWS-MY as a value
+     * with a null password
+     */
+    public final static String SIGNATURE_KEYSTORE_FILE = "keyStorePath";
+    /**
+     * The type of file, such as JKS for most Java applications, or WINDOWS-MY
+     * to use the Windows certificate store of the current user or KeychainStore
+     * for MacOS
+     */
+    public final static String SIGNATURE_KEYSTORE_FILETYPE = "keyStoreType";
+    public final static String SIGNATURE_KEYSTORE_FILE_PASSWORD = "filePassword";
+    public final static String SIGNATURE_KEYSTORE_KEY_PASSWORD = "keyPassword";
+    public final static String SIGNATURE_KEYSTORE_KEY_ALIAS = "keyAlias";
+    /**
+     * default is CanonicalizationMethod.EXCLUSIVE
+     *
+     * @see CanonicalizationMethod
+     */
+    public final static String CANONICALIZATIONMETHOD = "CanonicalizationMethod";
+    /**
+     * default is RSA_SHA1
+     *
+     * @see SignatureMethod
+     */
+    public final static String SIGNATURE_METHOD = "SignatureMethod";
+    /**
+     * Defines whether or not a certificate is included with the signature<Br>
+     * Values - Include whole X509 Public Key in the signature (recommended)
+     * (default) * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64, true);</pre>
+     * any value can be used.
+     */
+    public final static String SIGNATURE_OPTION_CERT_INCLUSION_BASE64 = "BASE64";
+    /*
+     * Include the signer's thumbprint of the public key.
+     * 
+     * Clients will not be able to validate the signature unless they have a copy of the signer's public key 
+     * in a trust store or the full certificate is included
+     * out of band
+     * 
+     * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_THUMBPRINT, true);</pre>
+     * any value can be used.
+     *@see SIGNATURE_OPTION_CERT_INCLUSION_BASE64
+     */
+    public final static String SIGNATURE_OPTION_CERT_INCLUSION_THUMBPRINT = "THUMBPRINT";
+    /*
+     * Include the signer's serial of the public key.
+     * 
+     * Clients will not be able to validate the signature unless they have a copy of the signer's public key 
+     * in a trust store or the full certificate is included
+     * out of band
+     *     
+     * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL, true);</pre>
+     * any value can be used.
+     *@see SIGNATURE_OPTION_CERT_INCLUSION_BASE64
+     */
+    public final static String SIGNATURE_OPTION_CERT_INCLUSION_SERIAL = "SERIAL";
+    /*
+     * Include the signer's Subject DN of the public key.
+     * 
+     * Clients will not be able to validate the signature unless they have a copy of the signer's public key 
+     * in a trust store or the full certificate is included
+     * out of band
+     *     
+     * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN, true);</pre>
+     * any value can be used.
+     *@see SIGNATURE_OPTION_CERT_INCLUSION_BASE64
+     */
+    public final static String SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN = "SUBJECTDN";
+    /*
+     * Include the signer's X500 Prinicple of the public key.
+     * 
+     * Clients will not be able to validate the signature unless they have a copy of the signer's public key 
+     * in a trust store or the full certificate is included
+     * out of band
+     *     
+     * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_X500_PRINICPAL, true);</pre>
+     * any value can be used.
+     *@see SIGNATURE_OPTION_CERT_INCLUSION_BASE64
+     */
+    public final static String SIGNATURE_OPTION_CERT_INCLUSION_X500_PRINICPAL = "X500";
+    public final static String XML_DIGSIG_NS = "http://www.w3.org/2000/09/xmldsig#";
+    /**
+     * Default value DigestMethod.SHA1 =
+     * "http://www.w3.org/2000/09/xmldsig#sha1"
+     *
+     * @see javax.xml.crypto.dsig.DigestMethod
+     */
+    public final static String SIGNATURE_OPTION_DIGEST_METHOD = "digestMethod";
+    /**
+     * When validating a signature, include this field will validate that the
+     * signature is still valid with regards to timestamps NotBefore and
+     * OnOrAfter
+     *
+     * Example
+     * <pre>
+     * Map map = new HashMap();
+     * map.put(DigSigUtil.CHECK_TIMESTAMPS, true);</pre> any value can be used.
+     */
+    public final static String CHECK_TIMESTAMPS = "checkTimestamps";
+
+    /**
+     * Digital signs a UDDI entity, such as a business, service, tmodel or
+     * binding template
+     *
+     * @param <T> Any UDDI entity that supports digital signatures
+     * @param jaxbObj
+     * @return an enveloped signed UDDI element, do not modify this object after
+     * signing
+     */
+    public <T> T signUddiEntity(T jaxbObj) {
+        DOMResult domResult = new DOMResult();
+        JAXB.marshal(jaxbObj, domResult);
+        Document doc = ((Document) domResult.getNode());
+        Element docElement = doc.getDocumentElement();
+
+        try {
+            KeyStore ks = KeyStore.getInstance(map.getProperty(SIGNATURE_KEYSTORE_FILETYPE));
+            URL url = Thread.currentThread().getContextClassLoader().getResource(map.getProperty(SIGNATURE_KEYSTORE_FILE));
+            if (url == null) {
+                try {
+                    url = new File(map.getProperty(SIGNATURE_KEYSTORE_FILE)).toURI().toURL();
+                } catch (Exception x) {
+                }
+            }
+            if (url == null) {
+                try {
+                    url = this.getClass().getClassLoader().getResource(map.getProperty(SIGNATURE_KEYSTORE_FILE));
+                } catch (Exception x) {
+                }
+            }
+            KeyStore.PrivateKeyEntry keyEntry = null;
+            if (!map.getProperty(SIGNATURE_KEYSTORE_FILETYPE).equalsIgnoreCase("WINDOWS-MY")) {
+                ks.load(url.openStream(), (map.getProperty(SIGNATURE_KEYSTORE_FILE_PASSWORD)).toCharArray());
+                if (map.getProperty(SIGNATURE_KEYSTORE_KEY_PASSWORD) == null) {
+                    keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(map.getProperty(SIGNATURE_KEYSTORE_KEY_ALIAS),
+                            new KeyStore.PasswordProtection(map.getProperty(SIGNATURE_KEYSTORE_FILE_PASSWORD).toCharArray()));
+                } else {
+                    keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(map.getProperty(SIGNATURE_KEYSTORE_KEY_ALIAS),
+                            new KeyStore.PasswordProtection(map.getProperty(SIGNATURE_KEYSTORE_KEY_PASSWORD).toCharArray()));
+                }
+            } else {
+                //Windows only
+                ks.load(null, null);
+                keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(map.getProperty(SIGNATURE_KEYSTORE_KEY_ALIAS),
+                        null);
+            }
+
+
+            PrivateKey privateKey = keyEntry.getPrivateKey();
+            Certificate origCert = keyEntry.getCertificate();
+            //PublicKey validatingKey = origCert.getPublicKey();
+            this.signDOM(docElement, privateKey, origCert);
+
+            DOMSource domSource = new DOMSource(doc);
+            T result = (T) JAXB.unmarshal(domSource, jaxbObj.getClass());
+            return result;
+        } catch (Exception e) {
+            throw new RuntimeException("Signature failure due to: " + e.getMessage(), e);
+        }
+    }
+
+    /**
+     * Serializes a JAXB object and prints to stdout
+     *
+     * @param obj
+     */
+    public static void JAXB_ToStdOut(Object obj) {
+        StringWriter sw = new StringWriter();
+        JAXB.marshal(obj, sw);
+        System.out.println(sw.toString());
+
+    }
+
+    /**
+     *
+     * returns the public key of the signing certificate used for a signed JAXB
+     * object.
+     *
+     * @param obj
+     * @return null if the item is not signed or if it references a certificate
+     * that is not present in the current keystore
+     * * @throws IllegalArgumentException for null input
+     */
+    public X509Certificate getSigningCertificatePublicKey(Object obj) throws IllegalArgumentException, CertificateException {
+        DOMResult domResult = new DOMResult();
+        JAXB.marshal(obj, domResult);
+
+        Document doc = ((Document) domResult.getNode());
+        Element docElement = doc.getDocumentElement();  //this is our signed node
+        return getSigningCertificatePublicKey(obj, docElement);
+    }
+
+    /**
+     *  /**
+     * returns the public key of the signing certificate used for a signed JAXB
+     * object.
+     *
+     * @param obj
+     * @return null if the item is not signed or if it references a certificate
+     * that is not present in the current keystore
+     * * @throws IllegalArgumentException for null input
+     */
+    private X509Certificate getSigningCertificatePublicKey(Object obj, Element docElement) throws IllegalArgumentException, CertificateException {
+        if (obj == null) {
+            throw new IllegalArgumentException();
+        }
+
+        NodeList childNodes = docElement.getChildNodes();   //children, one of these SHOULD be our signature element
+        X509Certificate signingcert = null;
+        for (int i = 0; i < childNodes.getLength(); i++) {
+            //System.out.println(childNodes.item(i).getNamespaceURI() + " " + childNodes.item(i).getNodeName());
+            if (childNodes.item(i).getNamespaceURI().equalsIgnoreCase(XML_DIGSIG_NS) && childNodes.item(i).getLocalName().equalsIgnoreCase("Signature")) {
+                Node sig = childNodes.item(i);
+                for (int k = 0; k < sig.getChildNodes().getLength(); k++) {
+                    //      System.out.println(sig.getChildNodes().item(k).getNamespaceURI() + " " + sig.getChildNodes().item(k).getNodeName());
+                    if (sig.getChildNodes().item(k).getLocalName().equalsIgnoreCase("KeyInfo")) {
+                        //TODO figure out how to reference Subject DN, serial, thumbprint, etc
+                        for (int j = 0; j < sig.getChildNodes().item(k).getChildNodes().getLength(); j++) {
+                            if (sig.getChildNodes().item(k).getChildNodes().item(j).getLocalName().equalsIgnoreCase("X509Data")) {
+                                Node X509Data = sig.getChildNodes().item(k).getChildNodes().item(j);
+                                for (int x = 0; x < X509Data.getChildNodes().getLength(); x++) {
+                                    if (X509Data.getChildNodes().item(x).getLocalName().equalsIgnoreCase("X509Certificate")) {
+                                        //yay found it!
+                                        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+                                        String c =
+                                                "-----BEGIN CERTIFICATE-----\n"
+                                                + X509Data.getChildNodes().item(x).getTextContent()
+                                                + "\n-----END CERTIFICATE-----";
+                                        //System.out.println("X509 Public key: " + c);
+                                        InputStream is = new ByteArrayInputStream(c.getBytes());
+                                        return (X509Certificate) cf.generateCertificate(is);
+
+                                    }
+                                    //TODO other parsing items, lots of other potentials here
+                                }
+                            }
+                            //System.out.println("ns " + sig.getChildNodes().item(k).getChildNodes().item(j).getNamespaceURI()
+                            //      + " nn " + sig.getChildNodes().item(k).getChildNodes().item(j).getNodeName()
+                            //    + " nv " + sig.getChildNodes().item(k).getChildNodes().item(j).getNodeValue()
+                            //  + " tx " + sig.getChildNodes().item(k).getChildNodes().item(j).getTextContent());
+                            //   -----BEGIN CERTIFICATE-----, and must be bounded at the end by -----END CERTIFICATE-----.
+
+
+                        }
+                        break;
+                    }
+
+                }
+
+                break;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Verifies the signature on an enveloped digital signature on a UDDI
+     * entity, such as a business, service, tmodel or binding template.
+     *
+     * @param obj
+     * @return true if the validation passes the signature validation test, and
+     * optionally any certificate validation or trust chain validation
+     */
+    public boolean verifySignedUddiEntity(Object obj) {
+        try {
+            DOMResult domResult = new DOMResult();
+            JAXB.marshal(obj, domResult);
+
+            Document doc = ((Document) domResult.getNode());
+            Element docElement = doc.getDocumentElement();  //this is our signed node
+
+            X509Certificate signingcert = getSigningCertificatePublicKey(obj, docElement);
+
+            if (signingcert != null && signingcert instanceof X509Certificate) {
+                logger.info("verifying signature based on embedded X509 public key " + signingcert.getSubjectDN().toString());
+                if (map.containsKey(CHECK_TIMESTAMPS)) {
+                    signingcert.checkValidity();
+                }
+                return verifySignature(docElement, signingcert.getPublicKey());
+            }
+            logger.info("signature did not have an embedded X509 public key. reverting to user specified certificate");
+            //cert wasn't included in the signature, revert to some other means
+            KeyStore ks = KeyStore.getInstance(map.getProperty(SIGNATURE_KEYSTORE_FILETYPE));
+            URL url = Thread.currentThread().getContextClassLoader().getResource(map.getProperty(SIGNATURE_KEYSTORE_FILE));
+            if (url == null) {
+                try {
+                    url = new File(map.getProperty(SIGNATURE_KEYSTORE_FILE)).toURI().toURL();
+                } catch (Exception x) {
+                }
+            }
+            if (url == null) {
+                try {
+                    url = this.getClass().getClassLoader().getResource(map.getProperty(SIGNATURE_KEYSTORE_FILE));
+                } catch (Exception x) {
+                }
+            }
+
+            ks.load(url.openStream(), map.getProperty(SIGNATURE_KEYSTORE_FILE_PASSWORD).toCharArray());
+            KeyStore.PrivateKeyEntry keyEntry = null;
+            if (map.getProperty(SIGNATURE_KEYSTORE_KEY_PASSWORD) == null) {
+                keyEntry =
+                        (KeyStore.PrivateKeyEntry) ks.getEntry(map.getProperty(SIGNATURE_KEYSTORE_KEY_ALIAS),
+                        new KeyStore.PasswordProtection(map.getProperty(SIGNATURE_KEYSTORE_FILE_PASSWORD).toCharArray()));
+            } else {
+                keyEntry =
+                        (KeyStore.PrivateKeyEntry) ks.getEntry(map.getProperty(SIGNATURE_KEYSTORE_KEY_ALIAS),
+                        new KeyStore.PasswordProtection(map.getProperty(SIGNATURE_KEYSTORE_KEY_PASSWORD).toCharArray()));
+            }
+            //       PrivateKey privateKey = keyEntry.getPrivateKey();
+            //TODO replace this by finding the certificate in the xml doc
+
+            Certificate origCert = keyEntry.getCertificate();
+            if (map.containsKey(CHECK_TIMESTAMPS)) {
+                if (origCert.getPublicKey() instanceof X509Certificate) {
+                    X509Certificate x = (X509Certificate) origCert.getPublicKey();
+                    x.checkValidity();
+                }
+            }
+            PublicKey validatingKey = origCert.getPublicKey();
+            return verifySignature(docElement, validatingKey);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private XMLSignatureFactory initXMLSigFactory() {
+        XMLSignatureFactory fac = XMLSignatureFactory.getInstance();
+        return fac;
+    }
+
+    private Reference initReference(XMLSignatureFactory fac) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {
+        List transformers = new ArrayList();
+        transformers.add(fac.newTransform(Transform.ENVELOPED, (TransformParameterSpec) null));
+
+        String dm = map.getProperty(SIGNATURE_OPTION_DIGEST_METHOD);
+        if (dm == null) {
+            dm = DigestMethod.SHA1;
+        }
+        Reference ref = fac.newReference("", fac.newDigestMethod(dm, null), transformers, null, null);
+        return ref;
+    }
+
+    private SignedInfo initSignedInfo(XMLSignatureFactory fac) throws Exception {
+        Reference ref = initReference(fac);
+        String cm = null;
+        cm = map.getProperty(CANONICALIZATIONMETHOD);
+        String sigmethod = null;
+        sigmethod = map.getProperty(SIGNATURE_METHOD);
+        if (sigmethod == null) {
+            sigmethod = SignatureMethod.RSA_SHA1;
+        }
+        if (cm == null) {
+            cm = CanonicalizationMethod.EXCLUSIVE;
+        }
+        SignedInfo si = fac.newSignedInfo(fac.newCanonicalizationMethod(
+                cm,
+                (C14NMethodParameterSpec) null),
+                fac.newSignatureMethod(SignatureMethod.DSA_SHA1,
+                null), Collections.singletonList(ref));
+        return si;
+    }
+
+    private boolean verifySignature(Element element, PublicKey validatingKey) {
+
+        XMLSignatureFactory fac = initXMLSigFactory();
+        NodeList nl = element.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
+        if (nl.getLength() == 0) {
+            throw new RuntimeException("Cannot find Signature element");
+        }
+        DOMValidateContext valContext = new DOMValidateContext(validatingKey, nl.item(0));
+        try {
+            valContext.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE);
+            XMLSignature signature = fac.unmarshalXMLSignature(valContext);
+            boolean coreValidity = signature.validate(valContext);
+            // Check core validation status.
+            if (coreValidity == false) {
+                logger.warn("Signature failed core validation");
+                boolean sv = signature.getSignatureValue().validate(valContext);
+                logger.debug("signature validation status: " + sv);
+                // Check the validation status of each Reference.
+                @SuppressWarnings("unchecked")
+                Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator();
+                //System.out.println("---------------------------------------------");
+                for (int j = 0; i.hasNext(); j++) {
+                    Reference ref = (Reference) i.next();
+                    boolean refValid = ref.validate(valContext);
+                    logger.debug(j);
+                    logger.debug("ref[" + j + "] validity status: " + refValid);
+                    logger.debug("Ref type: " + ref.getType() + ", URI: " + ref.getURI());
+                    for (Object xform : ref.getTransforms()) {
+                        logger.debug("Transform: " + xform);
+                    }
+                    String calcDigValStr = digestToString(ref.getCalculatedDigestValue());
+                    String expectedDigValStr = digestToString(ref.getDigestValue());
+                    logger.warn("    Calc Digest: " + calcDigValStr);
+                    logger.warn("Expected Digest: " + expectedDigValStr);
+                    /*InputStream is = ref.getDigestInputStream();
+                     InputStreamReader isr = new InputStreamReader(is);
+                     BufferedReader br = new BufferedReader(isr);
+                     String line;
+                     while ((line = br.readLine()) != null) {
+                     System.out.println(line);
+                     }
+                     is.close();
+                     System.out.println("---------------------------------------------");*/
+                }
+            } else {
+                logger.info("Signature passed core validation");
+            }
+            return coreValidity;
+        } catch (Exception e) {
+            logger.fatal(e);
+            return false;
+        }
+    }
+
+    private String digestToString(byte[] digest) {
+        StringBuilder sb = new StringBuilder();
+        for (byte b : digest) {
+            String hex = Integer.toHexString(0xFF & b);
+            if (hex.length() == 1) {
+                sb.append('0');
+            }
+            sb.append(hex);
+        }
+        return sb.toString();
+    }
+
+    private void signDOM(Node node, PrivateKey privateKey, Certificate origCert) {
+        XMLSignatureFactory fac = initXMLSigFactory();
+        X509Certificate cert = (X509Certificate) origCert;
+        // Create the KeyInfo containing the X509Data.
+
+        KeyInfoFactory kif = fac.getKeyInfoFactory();
+
+
+        List<Object> x509Content = null;//new ArrayList<Object>();
+        List<X509Data> data = new ArrayList<X509Data>();
+        /*if (map.containsKey(SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN)) {
+         * x509Content = new ArrayList<Object>();
+         * //    x509Content.add(cert.getSubjectDN().getName());
+         * //  x509Content.add(cert);
+         * x509Content.add(cert.getSubjectDN().getName());
+         * X509Data xd = kif.newX509Data(x509Content);
+         * data.add(xd);
+         * }
+         * if (map.containsKey(SIGNATURE_OPTION_CERT_INCLUSION_SERIAL)) {
+         * x509Content = new ArrayList<Object>();
+         * x509Content.add(cert.getSerialNumber());
+         * X509Data xd = kif.newX509Data(x509Content);
+         * data.add(xd);
+         * }
+         * if (map.containsKey(SIGNATURE_OPTION_CERT_INCLUSION_X500_PRINICPAL)) {
+         * x509Content = new ArrayList<Object>();
+         * x509Content.add(cert.getSubjectX500Principal().getName());
+         * X509Data xd = kif.newX509Data(x509Content);
+         * data.add(xd);
+         * }*/
+        if (map.containsKey(SIGNATURE_OPTION_CERT_INCLUSION_BASE64))//just include it
+        {
+            x509Content = new ArrayList<Object>();
+            x509Content.add(cert);
+            x509Content.add(cert.getSubjectX500Principal().getName());
+            X509Data xd = kif.newX509Data(x509Content);
+            data.add(xd);
+        }
+        x509Content.add(cert);
+
+
+        KeyInfo ki = kif.newKeyInfo(data);
+
+        // Create a DOMSignContext and specify the RSA PrivateKey and
+        // location of the resulting XMLSignature's parent element.
+        DOMSignContext dsc = new DOMSignContext(privateKey, node);
+        dsc.putNamespacePrefix(XML_DIGSIG_NS, "ns2");
+
+        // Create the XMLSignature, but don't sign it yet.
+        try {
+            SignedInfo si = initSignedInfo(fac);
+            XMLSignature signature = fac.newXMLSignature(si, ki);
+
+            // Marshal, generate, and sign the enveloped signature.
+            signature.sign(dsc);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

Propchange: juddi/branches/juddi-3.2.x/juddi-gui/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Mar 26 01:17:45 2013
@@ -0,0 +1,2 @@
+build
+dist

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/applet.policy
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/applet.policy?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/applet.policy (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/applet.policy Tue Mar 26 01:17:45 2013
@@ -0,0 +1,3 @@
+grant {
+permission java.security.AllPermission;
+};

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/build.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/build.xml?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/build.xml (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/build.xml Tue Mar 26 01:17:45 2013
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="juddi-gui-dsig" default="default" basedir=".">
+    <description>Builds, tests, and runs the project juddi-gui-dsig.</description>
+    <import file="nbproject/build-impl.xml"/>
+    <!--
+
+    There exist several targets which are by default empty and which can be 
+    used for execution of your tasks. These targets are usually executed 
+    before and after some main targets. They are: 
+
+      -pre-init:                 called before initialization of project properties
+      -post-init:                called after initialization of project properties
+      -pre-compile:              called before javac compilation
+      -post-compile:             called after javac compilation
+      -pre-compile-single:       called before javac compilation of single file
+      -post-compile-single:      called after javac compilation of single file
+      -pre-compile-test:         called before javac compilation of JUnit tests
+      -post-compile-test:        called after javac compilation of JUnit tests
+      -pre-compile-test-single:  called before javac compilation of single JUnit test
+      -post-compile-test-single: called after javac compilation of single JUunit test
+      -pre-jar:                  called before JAR building
+      -post-jar:                 called after JAR building
+      -post-clean:               called after cleaning build products
+
+    (Targets beginning with '-' are not intended to be called on their own.)
+
+    Example of inserting an obfuscator after compilation could look like this:
+
+        <target name="-post-compile">
+            <obfuscate>
+                <fileset dir="${build.classes.dir}"/>
+            </obfuscate>
+        </target>
+
+    For list of available properties check the imported 
+    nbproject/build-impl.xml file. 
+
+
+    Another way to customize the build is by overriding existing main targets.
+    The targets of interest are: 
+
+      -init-macrodef-javac:     defines macro for javac compilation
+      -init-macrodef-junit:     defines macro for junit execution
+      -init-macrodef-debug:     defines macro for class debugging
+      -init-macrodef-java:      defines macro for class execution
+      -do-jar-with-manifest:    JAR building (if you are using a manifest)
+      -do-jar-without-manifest: JAR building (if you are not using a manifest)
+      run:                      execution of project 
+      -javadoc-build:           Javadoc generation
+      test-report:              JUnit report generation
+
+    An example of overriding the target for project execution could look like this:
+
+        <target name="run" depends="juddi-gui-dsig-impl.jar">
+            <exec dir="bin" executable="launcher.exe">
+                <arg file="${dist.jar}"/>
+            </exec>
+        </target>
+
+    Notice that the overridden target depends on the jar target and not only on 
+    the compile target as the regular run target does. Again, for a list of available 
+    properties which you can use, check the target you are overriding in the
+    nbproject/build-impl.xml file. 
+
+    -->
+</project>

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/index.html
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/index.html?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/index.html (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/index.html Tue Mar 26 01:17:45 2013
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <title>JSP Page</title>
+    </head>
+    <body>
+        <h1>Hello World!</h1>
+        <applet code="org.apache.juddi.gui.dsig.NewApplet" archive="dist/juddi-gui-dsig.jar"></applet> 
+		        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
+				 <script type="text/javascript">
+				 function getXml()
+				{
+					return $("#data").val();
+				}
+				 
+				 
+				function writeXml(data)
+				{
+					$("#data").val(data);
+				}
+				
+				function getBrowserName()
+				{
+					return navigator.appName;
+				}
+				function getOsName()
+				{
+					var OSName="unknown OS";
+					if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
+					if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
+					if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
+					if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
+					return OSName;
+				}
+				</script>
+			<textarea rows="15" cols="80" id="data">hello world</textarea>
+    </body>
+</html>

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/manifest.mf
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/manifest.mf?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/manifest.mf (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/manifest.mf Tue Mar 26 01:17:45 2013
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-applet.jnlp
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-applet.jnlp?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-applet.jnlp (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-applet.jnlp Tue Mar 26 01:17:45 2013
@@ -0,0 +1,23 @@
+<jnlp spec="1.0+" codebase="${jnlp.codebase}" href="launch.jnlp">
+    <information>
+        <title>${APPLICATION.TITLE}</title>
+        <vendor>${APPLICATION.VENDOR}</vendor>
+        <homepage href="${APPLICATION.HOMEPAGE}"/>
+        <description>${APPLICATION.DESC}</description>
+        <description kind="short">${APPLICATION.DESC.SHORT}</description>
+        <!--${JNLP.ICONS}-->
+        <!--${JNLP.OFFLINE.ALLOWED}-->
+    </information>
+    <!--${JNLP.UPDATE}-->
+    <!--${JNLP.SECURITY}-->
+    <resources>
+        <!--${JNLP.RESOURCES.RUNTIME}-->
+        <!--${JNLP.RESOURCES.MAIN.JAR}-->
+        <!--${JNLP.RESOURCES.JARS}-->
+        <!--${JNLP.RESOURCES.EXTENSIONS}-->
+    </resources>
+    <applet-desc main-class="${jnlp.main.class}" name="${APPLICATION.TITLE}"
+        width="${jnlp.applet.width}" height="${jnlp.applet.height}">
+        <!--${JNLP.APPLET.PARAMS}-->
+    </applet-desc>
+</jnlp>

Added: juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-application.jnlp
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-application.jnlp?rev=1460942&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-application.jnlp (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui-dsig/master-application.jnlp Tue Mar 26 01:17:45 2013
@@ -0,0 +1,22 @@
+<jnlp spec="1.0+" codebase="${jnlp.codebase}" href="launch.jnlp">
+    <information>
+        <title>${APPLICATION.TITLE}</title>
+        <vendor>${APPLICATION.VENDOR}</vendor>
+        <homepage href="${APPLICATION.HOMEPAGE}"/>
+        <description>${APPLICATION.DESC}</description>
+        <description kind="short">${APPLICATION.DESC.SHORT}</description>
+        <!--${JNLP.ICONS}-->
+        <!--${JNLP.OFFLINE.ALLOWED}-->
+    </information>
+    <!--${JNLP.UPDATE}-->
+    <!--${JNLP.SECURITY}-->
+    <resources>
+        <!--${JNLP.RESOURCES.RUNTIME}-->
+        <!--${JNLP.RESOURCES.MAIN.JAR}-->
+        <!--${JNLP.RESOURCES.JARS}-->
+        <!--${JNLP.RESOURCES.EXTENSIONS}-->
+    </resources>
+    <application-desc main-class="${jnlp.main.class}">
+        <!--${JNLP.APPLICATION.ARGS}-->
+    </application-desc>
+</jnlp>



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