Author: keith
Date: Mon Jul 14 07:00:05 2008
New Revision: 19257
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=19257

Log:
Initial fix for Mashup-933. Need to test more and there are some minor changes 
needed too


Modified:
   
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
   trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java
   trunk/mashup/java/modules/core/src/org/wso2/mashup/RegistryInitializer.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/CustomProtocolSocketFactory.java
   trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/KeyStoreUtil.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/utils/RegistryUtils.java
   trunk/mashup/java/modules/distribution/create-distro-build.xml
   
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/wsrequest/WSRequestHostImpl.java
   trunk/mashup/java/modules/www/cert_manager.jsp

Modified: 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
   (original)
+++ 
trunk/mashup/java/modules/admin/service/src/org/wso2/mashup/admin/service/MashupAdminService.java
   Mon Jul 14 07:00:05 2008
@@ -63,8 +63,6 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ByteArrayInputStream;
 import java.io.FileInputStream;
 import java.io.BufferedInputStream;
 import java.io.OutputStream;
@@ -75,6 +73,7 @@
 import java.security.KeyStore;
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
+import java.security.Key;
 import java.security.cert.CertificateFactory;
 import java.security.cert.CertificateException;
 import java.net.URL;
@@ -857,4 +856,86 @@
             throw new MashupFault(e);
         }
     }
+
+    public Boolean importPrivateKeyFromKeyStore(String userName, String 
keyStorePass,
+                                                String privateKeyAlias, String 
privateKeyPass,
+                                                DataHandler dataHandler)
+    throws AxisFault {
+        String msg;
+        FileInputStream ksIn = null;
+        BufferedInputStream ksbufin = null;
+        OutputStream os = null;
+        String keyStoreName = userName + MashupConstants.KEY_STORE_SUFFIX;
+
+        try {
+
+            KeyStore userKeyStore = KeyStore.getInstance("JKS");
+            InputStream inputStream = 
dataHandler.getDataSource().getInputStream();
+            userKeyStore.load(inputStream, keyStorePass.toCharArray());
+            if (!userKeyStore.isKeyEntry(privateKeyAlias)) {
+                throw new AxisFault("A private key with the alias " + 
privateKeyAlias +
+                        " was not found in the keystore");
+            }
+            Key key = userKeyStore.getKey(privateKeyAlias, 
privateKeyPass.toCharArray());
+            ServerConfiguration config = ServerConfiguration.getInstance();
+            KeyStoreDO keyStoreDO = pm.getKeyStore(keyStoreName);
+
+
+            String ksInPath;
+            // Check whether the file has a relative path or an absolute path
+            if (!new File(keyStoreDO.getFilePath()).isAbsolute()) {
+                String ksDir = 
config.getFirstProperty("Security.KeyStoresDir");
+                ksInPath = ksDir + File.separator + keyStoreDO.getFilePath();
+            } else {
+                ksInPath = keyStoreDO.getFilePath();
+            }
+
+            ksIn = new FileInputStream(ksInPath);
+            ksbufin = new BufferedInputStream(ksIn);
+            String storePassword = keyStoreDO.getStorePassword();
+            KeyStore keyStore = KeyStore.getInstance("JKS");
+            CryptoUtil cryptoUtil =
+                    new CryptoUtil(new File(config.getFirstProperty(
+                            "Security.KeyStore.Location")).getAbsolutePath(),
+                                   
config.getFirstProperty("Security.KeyStore.Password"),
+                                   
config.getFirstProperty("Security.KeyStore.KeyAlias"),
+                                   
config.getFirstProperty("Security.KeyStore.KeyPassword"),
+                                   
config.getFirstProperty("Security.KeyStore.Type"));
+            char[] decryptedStorePass =
+                    new 
String(cryptoUtil.base64DecodeAndDecrypt(storePassword)).toCharArray();
+            keyStore.load(ksbufin, decryptedStorePass);
+            keyStore.setKeyEntry(privateKeyAlias, key, 
privateKeyPass.toCharArray(),
+                                 
userKeyStore.getCertificateChain(privateKeyAlias));
+            pm.deleteKeyStore(keyStoreName);
+            org.wso2.wsas.util.KeyStoreUtil.persistKeyStore(keyStoreName,
+                                                            
MashupConstants.USER_KEY_STORE_PASS,
+                                                            "JKS",
+                                                            privateKeyAlias,
+                                                            privateKeyPass,
+                                                            null, false);
+            os = new FileOutputStream(new File(ksInPath));
+            keyStore.store(os, decryptedStorePass);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            msg = "Could not add private key to the users keystore. ";
+            log.error(msg, e);
+            throw new AxisFault(msg, e);
+        } finally {
+            try {
+                if (ksIn != null) {
+                    ksIn.close();
+                }
+                if (ksbufin != null) {
+                    ksbufin.close();
+                }
+                if (os != null) {
+                    os.close();
+                }
+            } catch (IOException e) {
+                log.error("Error occurred while closing keystore file " + 
keyStoreName, e);
+            }
+        }
+        return Boolean.valueOf(true);
+    }
 }

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java     
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java     
Mon Jul 14 07:00:05 2008
@@ -295,6 +295,10 @@
 
     public static final String KEY_STORE_SUFFIX = "-keystore.jks";
 
+    public static final String USER_KEY_STORE_PASS = "UserKeyStorePass";
+
+    public static final String DEFAULT_PRIVATE_KEY_ENTRY = 
"DefaultPrivateKeyEntry";
+
     //  Used to persist the remember me option.
     public static final String REMEMBER_OPENID = "rememberopenid";
 

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/RegistryInitializer.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/RegistryInitializer.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/RegistryInitializer.java 
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/RegistryInitializer.java 
Mon Jul 14 07:00:05 2008
@@ -28,7 +28,6 @@
 import org.wso2.registry.ResourceImpl;
 import org.wso2.registry.config.RegistryContext;
 import org.wso2.registry.jdbc.EmbeddedRegistry;
-import org.wso2.registry.jdbc.utils.RegistryDataSource;
 import org.wso2.registry.session.UserRegistry;
 import org.wso2.registry.users.AccessControlAdmin;
 import org.wso2.registry.users.UserRealm;
@@ -237,7 +236,7 @@
     private static void CreatePrimaryUser(UserRegistry systemRegistry,
                                           ServerConfiguration serverConfig, 
UserRealm realm,
                                           UserStoreAdmin userStoreAdmin)
-            throws UserStoreException, RegistryException {
+            throws UserStoreException, RegistryException, MashupFault {
 
         final String ADMIN_USER_BIO = "System Administrator";
         final String NONE = "none";
@@ -278,7 +277,7 @@
      * registry
      */
     private static void createInitialUsersInRegistry(UserRegistry 
systemRegistry)
-            throws UserStoreException, RegistryException {
+            throws UserStoreException, RegistryException, MashupFault {
 
         final String SYSTEM_USER_NAME = "System";
         final String SYSTEM_USER_BIO = "System User";

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/CustomProtocolSocketFactory.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/CustomProtocolSocketFactory.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/CustomProtocolSocketFactory.java
   (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/CustomProtocolSocketFactory.java
   Mon Jul 14 07:00:05 2008
@@ -94,6 +94,7 @@
             FileInputStream ksIn = new FileInputStream(ksInPath);
             BufferedInputStream ksbufin = new BufferedInputStream(ksIn);
             String storePassword = keyStoreDO.getStorePassword();
+            String privateKeyPassword = keyStoreDO.getPrivateKeyPassword();
             CryptoUtil cryptoUtil =
                     new CryptoUtil(new File(config.getFirstProperty(
                             "Security.KeyStore.Location")).getAbsolutePath(),
@@ -103,9 +104,11 @@
                                    
config.getFirstProperty("Security.KeyStore.Type"));
             char[] decryptedStorePass =
                     new 
String(cryptoUtil.base64DecodeAndDecrypt(storePassword)).toCharArray();
+            char[] decryptedPrivateKeyPass =
+                    new 
String(cryptoUtil.base64DecodeAndDecrypt(privateKeyPassword)).toCharArray();
             keyStore.load(ksbufin, decryptedStorePass);
             
-            keyManagerFactory.init(keyStore, decryptedStorePass);
+            keyManagerFactory.init(keyStore, decryptedPrivateKeyPass);
 
             TrustManagerFactory trustManagerFactory = 
TrustManagerFactory.getInstance("SunX509");
             KeyStore trustStore = KeyStore.getInstance("JKS");

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/KeyStoreUtil.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/KeyStoreUtil.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/KeyStoreUtil.java  
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/KeyStoreUtil.java  
Mon Jul 14 07:00:05 2008
@@ -15,7 +15,6 @@
  */
 package org.wso2.mashup.utils;
 
-import org.wso2.wsas.admin.service.CryptoAdmin;
 import org.wso2.wsas.persistence.exception.KeyStoreAlreadyExistsException;
 import org.wso2.utils.ServerConfiguration;
 import org.wso2.utils.ServerException;

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
      (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/userprofile/AddUserBean.java
      Mon Jul 14 07:00:05 2008
@@ -18,6 +18,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.wso2.mashup.MashupConstants;
+import org.wso2.mashup.MashupFault;
 import org.wso2.mashup.webapp.utils.RegistryUtils;
 import org.wso2.registry.RegistryConstants;
 import org.wso2.registry.exceptions.RegistryException;
@@ -196,6 +197,8 @@
             log.error("Error adding user in user manager", e);
         } catch (RegistryException e) {
             log.error("Error adding user resources", e);
+        } catch (MashupFault mashupFault) {
+            log.error("Error adding user resources", mashupFault);
         }
         return created;
     }

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/utils/RegistryUtils.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/utils/RegistryUtils.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/utils/RegistryUtils.java
  (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/webapp/utils/RegistryUtils.java
  Mon Jul 14 07:00:05 2008
@@ -23,7 +23,6 @@
 import org.wso2.mashup.MashupFault;
 import org.wso2.mashup.utils.QueryResult;
 import org.wso2.mashup.utils.QueryResults;
-import org.wso2.mashup.utils.KeyStoreUtil;
 import org.wso2.mashup.webapp.userprofile.User;
 import org.wso2.registry.ActionConstants;
 import org.wso2.registry.Collection;
@@ -43,7 +42,9 @@
 import org.wso2.registry.users.UserStoreReader;
 import org.wso2.registry.users.accesscontrol.AuthorizingRealmConfig;
 import org.wso2.utils.ServerConfiguration;
+import org.wso2.utils.ServerException;
 import org.wso2.wsas.ServerManager;
+import org.wso2.wsas.persistence.exception.KeyStoreAlreadyExistsException;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -53,6 +54,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -61,6 +64,10 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Arrays;
+import java.security.KeyStore;
+import java.security.NoSuchAlgorithmException;
+import java.security.KeyStoreException;
+import java.security.cert.CertificateException;
 import java.util.Enumeration;
 
 public class RegistryUtils {
@@ -647,7 +654,7 @@
      */
     public static void createUser(UserRegistry systemRegistry, String userName,
                                   String fullName, String eMailId, String bio)
-            throws UserStoreException, RegistryException {
+            throws UserStoreException, RegistryException, MashupFault {
 
         UserRealm realm = systemRegistry.getUserRealm();
         UserStoreAdmin userStoreAdmin = realm.getUserStoreAdmin();
@@ -900,32 +907,53 @@
      *
      * @param userName The username of the keystore owner
      */
-   private static void addUserKeyStore(String userName) {
+   private static void addUserKeyStore(String userName) throws MashupFault {
 
         // Getting the default keysotre
         ServerConfiguration serverConfig = ServerConfiguration.getInstance();
 
-        String keyStoreLocation =
-                serverConfig.getFirstProperty(MashupConstants.SECURITY_CONFIG 
+ "." +
-                        MashupConstants.SECURITY_CONFIG_KEYSTORE + "." + 
MashupConstants
-                        .SECURITY_CONFIG_KEYSTORE_LOCATION);
-
-        String keyStorePass =
-                serverConfig.getFirstProperty(MashupConstants.SECURITY_CONFIG 
+ "." +
-                        MashupConstants.SECURITY_CONFIG_KEYSTORE + "." + 
MashupConstants
-                        .SECURITY_CONFIG_KEYSTORE_PASSWORD);
-
-        String keyStoreAlias =
-                serverConfig.getFirstProperty(MashupConstants.SECURITY_CONFIG 
+ "." +
-                        MashupConstants.SECURITY_CONFIG_KEYSTORE + "." + 
MashupConstants
-                        .SECURITY_CONFIG_KEYSTORE_KEYALIAS);
-
         try {
-            KeyStoreUtil.addNewKeyStore(keyStoreLocation, userName +
-                    MashupConstants.KEY_STORE_SUFFIX, keyStorePass,
-                                        keyStoreAlias, keyStorePass, "JKS", 
null);
-        } catch (IOException e1) {
-            log.error(e1);
+            String wso2wsasHome = 
System.getProperty(MashupConstants.WSO2WSAS_HOME);
+            KeyStore keyStore = KeyStore.getInstance("jks");
+            FileInputStream fis = new FileInputStream(
+                    wso2wsasHome + File.separator + "conf" + File.separator + 
"teststore");
+            keyStore.load(fis, "testing".toCharArray());
+            File ksDir = new 
File(serverConfig.getFirstProperty("Security.KeyStoresDir"));
+            if (!ksDir.exists()) {
+                ksDir.mkdirs();
+            }
+            String keyStoreName = userName + MashupConstants.KEY_STORE_SUFFIX;
+            // Check whether KS file already exists
+            File ksFile = new File(ksDir.getAbsolutePath(), keyStoreName);
+            if (ksFile.exists()) {
+                throw new MashupFault("Keystore file " + ksFile.getName() + " 
already exists!");
+            }
+            FileOutputStream fileOutputStream = new FileOutputStream(ksFile);
+            keyStore.store(fileOutputStream, 
MashupConstants.USER_KEY_STORE_PASS.toCharArray());
+            org.wso2.wsas.util.KeyStoreUtil.persistKeyStore(ksFile.getName(),
+                                                            
MashupConstants.USER_KEY_STORE_PASS,
+                                                            "JKS",
+                                                            
MashupConstants.DEFAULT_PRIVATE_KEY_ENTRY,
+                                                            
MashupConstants.DEFAULT_PRIVATE_KEY_ENTRY,
+                                                            null, false);
+        } catch (IOException e) {
+            log.error(e);
+            throw new MashupFault(e);
+        } catch (NoSuchAlgorithmException e) {
+            log.error(e);
+            throw new MashupFault(e);
+        } catch (KeyStoreException e) {
+            log.error(e);
+            throw new MashupFault(e);
+        } catch (CertificateException e) {
+            log.error(e);
+            throw new MashupFault(e);
+        } catch (ServerException e) {
+            log.error(e);
+            throw new MashupFault(e);
+        } catch (KeyStoreAlreadyExistsException e) {
+            log.error(e);
+            throw new MashupFault(e);
         }
     }
 }
\ No newline at end of file

Modified: trunk/mashup/java/modules/distribution/create-distro-build.xml
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/distribution/create-distro-build.xml?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- trunk/mashup/java/modules/distribution/create-distro-build.xml      
(original)
+++ trunk/mashup/java/modules/distribution/create-distro-build.xml      Mon Jul 
14 07:00:05 2008
@@ -243,6 +243,7 @@
                 <include name="derby.properties"/>
                 <include name="ui-extensions-config.xml"/>
                 <include name="wso2is.jks"/>
+                <include name="teststore"/>
             </fileset>
         </copy>
         <copy file="../core/conf/web_root.xml" 
tofile="${dist.dir}/lib/tomcat/webapps/ROOT/WEB-INF/web.xml"/>

Modified: 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/wsrequest/WSRequestHostImpl.java
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/wsrequest/WSRequestHostImpl.java?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/wsrequest/WSRequestHostImpl.java
      (original)
+++ 
trunk/mashup/java/modules/hostobjects/src/org/wso2/mashup/hostobjects/wsrequest/WSRequestHostImpl.java
      Mon Jul 14 07:00:05 2008
@@ -1097,11 +1097,6 @@
 
         ServerConfiguration serverConfig = ServerConfiguration.getInstance();
 
-        String keyStorePass =
-                serverConfig.getFirstProperty(MashupConstants.SECURITY_CONFIG 
+ "." +
-                        MashupConstants.SECURITY_CONFIG_KEYSTORE + "." + 
MashupConstants
-                        .SECURITY_CONFIG_KEYSTORE_PASSWORD);
-
         String KeyStoresDir =
                 serverConfig.getFirstProperty(MashupConstants.SECURITY_CONFIG 
+ "." +
                         MashupConstants.SECURITY_CONFIG_KEYSTORE_KEYSTOREDIR);
@@ -1121,6 +1116,10 @@
         } catch (KeyStoreException e) {
             throw new MashupFault(e);
         }
+        if (user == null) {
+            throw new MashupFault("A private key was not found in your 
keystore." +
+                    " Please use the cert manager page to add your private key 
to the keystore.");
+        }
         rc.setUser(user);
 
         String keystore = KeyStoresDir + File.separator + authorName +
@@ -1129,7 +1128,8 @@
         Properties prop1 = new Properties();
         prop1.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");
         prop1.put("org.apache.ws.security.crypto.merlin.file", keystore);
-        prop1.put("org.apache.ws.security.crypto.merlin.keystore.password", 
keyStorePass);
+        prop1.put("org.apache.ws.security.crypto.merlin.keystore.password",
+                  MashupConstants.USER_KEY_STORE_PASS);
         sigCryptoConfig.setProp(prop1);
 
         CryptoConfig encrCryptoConfig = new CryptoConfig();
@@ -1141,7 +1141,8 @@
 
 
         prop2.put("org.apache.ws.security.crypto.merlin.file", keystore);
-        prop2.put("org.apache.ws.security.crypto.merlin.keystore.password", 
keyStorePass);
+        prop2.put("org.apache.ws.security.crypto.merlin.keystore.password",
+                  MashupConstants.USER_KEY_STORE_PASS);
         encrCryptoConfig.setProp(prop2);
 
         rc.setSigCryptoConfig(sigCryptoConfig);

Modified: trunk/mashup/java/modules/www/cert_manager.jsp
URL: 
http://wso2.org/svn/browse/wso2/trunk/mashup/java/modules/www/cert_manager.jsp?rev=19257&r1=19256&r2=19257&view=diff
==============================================================================
--- trunk/mashup/java/modules/www/cert_manager.jsp      (original)
+++ trunk/mashup/java/modules/www/cert_manager.jsp      Mon Jul 14 07:00:05 2008
@@ -19,6 +19,8 @@
 <%@ page import="org.wso2.wsas.admin.service.util.CertData" %>
 <%@ page import="java.util.Arrays" %>
 <%@ page import="java.util.Comparator" %>
+<%@ page import="org.wso2.wsas.persistence.dataobject.KeyStoreDO" %>
+<%@ page import="org.wso2.wsas.persistence.PersistenceManager" %>
 
 <!--Required to keep a user logged in if 'Remember Me' option is selected-->
 <%@ include file="validate_login.jsp" %>
@@ -88,6 +90,23 @@
         }
     }
 
+    function submitImportPrivateKeyFromKeyStoreFormAsync(formId) {
+        var form = document.getElementById(formId);
+
+        if (document.getElementById("dataHandler").value == "") {
+            WSO2.MashupUtils.dialog("Insufficient data", "<pre>Please browse 
your file system for a valid KeyStore.</pre><br><input type='button' 
value='Close' onclick='WSO2.MashupUtils.dialog.close();'", 70, 70);
+        } else if (document.getElementById("keyStorePass").value == "") {
+            WSO2.MashupUtils.dialog("Insufficient data", "<pre>Please provide 
the Store Password of the KeyStore provided.</pre><br><input type='button' 
value='Close' onclick='WSO2.MashupUtils.dialog.close();'", 70, 70);
+        } else if (document.getElementById("privateKeyAlias").value == "") {
+            WSO2.MashupUtils.dialog("Insufficient data", "<pre>Please provide 
the Alias of the private key of the KeyStore provided.</pre><br><input 
type='button' value='Close' onclick='WSO2.MashupUtils.dialog.close();'", 70, 
70);
+        } else if (document.getElementById("privateKeyPass").value == "") {
+            WSO2.MashupUtils.dialog("Insufficient data", "<pre>Please provide 
the password of the private key of the KeyStore provided.</pre><br><input 
type='button' value='Close' onclick='WSO2.MashupUtils.dialog.close();'", 70, 
70);
+        } else {
+            YAHOO.util.Connect.setForm(form, true, true);
+            YAHOO.util.Connect.asyncRequest("POST", 
form.getAttribute("action"), callback, null);
+        }
+    }
+
     function noEnter(e) {
         var keynum = "";
         if (window.event) // IE
@@ -213,6 +232,53 @@
     </div>
 </fieldset>
 <br/>
+<%
+    String keyStoreName = currentUser + MashupConstants.KEY_STORE_SUFFIX;
+    PersistenceManager pm = new PersistenceManager();
+    KeyStoreDO keyStoreDO = pm.getKeyStore(keyStoreName);
+
+    // If the private key alias is "DefaultPrivateKeyEntry" that means the 
user has not added any private key as yet 
+    if 
(MashupConstants.DEFAULT_PRIVATE_KEY_ENTRY.equals(keyStoreDO.getPrivateKeyAlias()))
 {
+%>
+<fieldset>
+    <legend><font color="#000000"><strong>Upload private key using a 
KeyStore</strong></font></legend>
+    <br/>
+
+    <form id="importPrivateKeyFromKeyStoreForm" method="post" 
enctype="multipart/form-data"
+          
action="<%=axis2ConfigContext.getServicePath()%>/MashupAdminService/importPrivateKeyFromKeyStore"
+          target="uploadFrame">
+        <input type="hidden" id="userName" name="userName" 
value="<%=currentUser%>"/>
+        <label>KeyStore containing private key<font 
color="red">*</font></label><input
+            type="file" size="50" id="dataHandler" name="dataHandler"
+            style="margin-left: 5px;" onkeydown="noEnter(event);"/>
+        <br/>
+        <br/>
+        <label>KeyStore Password<font color="red">*</font></label><input 
type="password" id="keyStorePass"
+                                                             
name="keyStorePass"
+                                                             
style="margin-left: 32px;"
+                                                             
onkeydown="noEnter(event);"/>
+        <br/>
+        <br/>
+        <label>Private Key Alias<font color="red">*</font></label><input 
type="text" id="privateKeyAlias"
+                                                             
name="privateKeyAlias"
+                                                             
style="margin-left: 32px;"
+                                                             
onkeydown="noEnter(event);"/>
+        <br/>
+        <br/>
+        <label>Private Key Password<font color="red">*</font></label><input 
type="password" id="privateKeyPass"
+                                                             
name="privateKeyPass"
+                                                             
style="margin-left: 32px;"
+                                                             
onkeydown="noEnter(event);"/>
+        <br/>
+        <br/>
+        <input type="button" value="Upload" align="right"
+               onclick="return 
submitImportPrivateKeyFromKeyStoreFormAsync('importPrivateKeyFromKeyStoreForm');"/>
+    </form>
+</fieldset>
+<br/>
+<%
+    }
+%>
 <fieldset>
     <legend><font color="#000000"><strong>You are currently trusting the 
following certificates</strong></font></legend>
     <br/>

_______________________________________________
Mashup-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to