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
