You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2009/05/12 07:24:41 UTC
svn commit: r773784 - in /synapse/trunk/java:
modules/core/src/main/java/org/apache/synapse/security/definition/
modules/core/src/main/java/org/apache/synapse/security/definition/factory/
modules/core/src/main/java/org/apache/synapse/security/secret/ m...
Author: indika
Date: Tue May 12 05:24:40 2009
New Revision: 773784
URL: http://svn.apache.org/viewvc?rev=773784&view=rev
Log:
remove password provider from secret manager
add password providers for keystore configurations
update property file and document
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/IdentityKeyStoreInformation.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/KeyStoreInformation.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/factory/KeyStoreInformationFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/secret/SecretManager.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/tool/CipherTool.java
synapse/trunk/java/repository/conf/synapse.properties
synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/IdentityKeyStoreInformation.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/IdentityKeyStoreInformation.java?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/IdentityKeyStoreInformation.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/IdentityKeyStoreInformation.java Tue May 12 05:24:40 2009
@@ -18,6 +18,8 @@
*/
package org.apache.synapse.security.definition;
+import org.apache.synapse.commons.util.secret.SecretInformation;
+
import javax.net.ssl.KeyManagerFactory;
import java.security.KeyStore;
@@ -27,10 +29,10 @@
public class IdentityKeyStoreInformation extends KeyStoreInformation {
/* Password for access private key*/
- private String keyPassword;
+ private SecretInformation keyPasswordProvider;
- public void setKeyPassword(String keyPassword) {
- this.keyPassword = keyPassword;
+ public void setKeyPasswordProvider(SecretInformation keyPasswordProvider) {
+ this.keyPasswordProvider = keyPasswordProvider;
}
/**
@@ -48,7 +50,7 @@
KeyStore keyStore = this.getIdentityKeyStore();
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(
KeyManagerFactory.getDefaultAlgorithm());
- keyManagerFactory.init(keyStore, keyPassword.toCharArray());
+ keyManagerFactory.init(keyStore, keyPasswordProvider.getResolvedPassword().toCharArray());
return keyManagerFactory;
} catch (Exception e) {
@@ -67,4 +69,7 @@
return super.getKeyStore();
}
+ public SecretInformation getKeyPasswordProvider() {
+ return keyPasswordProvider;
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/KeyStoreInformation.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/KeyStoreInformation.java?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/KeyStoreInformation.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/KeyStoreInformation.java Tue May 12 05:24:40 2009
@@ -21,6 +21,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.commons.util.secret.SecretInformation;
import org.apache.synapse.security.enumeration.KeyStoreType;
import org.apache.synapse.security.interfaces.ICACertsLoader;
import org.apache.synapse.security.interfaces.IKeyStoreLoader;
@@ -49,7 +50,7 @@
/* KeyStore location */
private String location;
/* KeyStore Password to unlock KeyStore */
- private String keyStorePassword;
+ private SecretInformation keyStorePasswordProvider;
/* KeyStore provider */
private String provider;
@@ -97,8 +98,8 @@
this.provider = provider;
}
- public void setKeyStorePassword(String keyStorePassword) {
- this.keyStorePassword = keyStorePassword;
+ public void setKeyStorePasswordProvider(SecretInformation keyStorePasswordProvider) {
+ this.keyStorePasswordProvider = keyStorePasswordProvider;
}
public void addParameter(String name, String value) {
@@ -119,7 +120,7 @@
if (log.isDebugEnabled()) {
log.debug("Loading KeyStore with type : " + storeType);
}
-
+ String keyStorePassword = this.keyStorePasswordProvider.getResolvedPassword();
switch (storeType) {
case JKS:
IKeyStoreLoader jksKeyStoreLoader = new JKSKeyStoreLoader(location,
@@ -156,4 +157,7 @@
throw new SynapseException(msg, e);
}
+ public SecretInformation getKeyStorePasswordProvider() {
+ return keyStorePasswordProvider;
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/factory/KeyStoreInformationFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/factory/KeyStoreInformationFactory.java?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/factory/KeyStoreInformationFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/definition/factory/KeyStoreInformationFactory.java Tue May 12 05:24:40 2009
@@ -24,6 +24,7 @@
import org.apache.synapse.security.definition.KeyStoreInformation;
import org.apache.synapse.security.definition.TrustKeyStoreInformation;
import org.apache.synapse.commons.util.MiscellaneousUtil;
+import org.apache.synapse.commons.util.secret.SecretInformationFactory;
import java.util.Properties;
@@ -41,9 +42,9 @@
/* Alias for private key entry KeyStore */
private final static String IDENTITY_KEY_STORE_ALIAS = "keystore.identity.alias";
/* Password for access keyStore*/
- private final static String IDENTITY_KEY_STORE_PASSWORD = "keystore.identity.storePassword";
+ private final static String IDENTITY_KEY_STORE_PASSWORD = "keystore.identity.store";
/* Password for get private key*/
- private final static String IDENTITY_KEY_PASSWORD = "keystore.identity.keyPassword";
+ private final static String IDENTITY_KEY_PASSWORD = "keystore.identity.key";
private final static String KEY_STORE_PARAMETERS = "keystore.identity.parameters";
@@ -54,9 +55,20 @@
/* Alias for certificate KeyStore */
private final static String TRUST_STORE_ALIAS = "keystore.trust.alias";
/* Password for access TrustStore*/
- private final static String TRUST_STORE_PASSWORD = "keystore.trust.storePassword";
+ private final static String TRUST_STORE_PASSWORD = "keystore.trust.store";
private final static String TRUST_STORE_PARAMETERS = "keystore.trust.parameters";
+ /* Dot string */
+ private final static String DOT = ".";
+ /* Property key password provider */
+ private final static String PROP_PASSWORD_PROVIDER = "passwordProvider";
+ /* Prompt for trust store password*/
+ private final static String TRUSTSTORE_PASSWORD_PROMPT = "Trust Store Password > ";
+ /* Prompt for identity store password*/
+ private final static String IDENTITYSTORE_PASSWORD_PROMPT = "Identity Store Password > ";
+ /* Prompt for identity store private key password*/
+ private final static String IDENTITYSTORE_PRIVATE_KEY_PASSWORD_PROMPT
+ = "Identity Store Private Key Password > ";
/**
* Creates a KeyStoreInformation using synapse properties
@@ -84,12 +96,17 @@
keyStoreInformation.setStoreType(
MiscellaneousUtil.getProperty(properties,
IDENTITY_KEY_STORE_TYPE, null));
- keyStoreInformation.setKeyStorePassword(
- MiscellaneousUtil.getProperty(
- properties, IDENTITY_KEY_STORE_PASSWORD, null));
- keyStoreInformation.setKeyPassword(
- MiscellaneousUtil.getProperty(
- properties, IDENTITY_KEY_PASSWORD, null));
+
+ keyStoreInformation.setKeyStorePasswordProvider(
+ SecretInformationFactory.createSecretInformation(properties,
+ IDENTITY_KEY_STORE_PASSWORD + DOT,
+ IDENTITYSTORE_PASSWORD_PROMPT));
+
+ keyStoreInformation.setKeyPasswordProvider(
+ SecretInformationFactory.createSecretInformation(
+ properties, IDENTITY_KEY_PASSWORD + DOT,
+ IDENTITYSTORE_PRIVATE_KEY_PASSWORD_PROMPT));
+
String parameterString = MiscellaneousUtil.getProperty(
properties, KEY_STORE_PARAMETERS, null);
@@ -124,8 +141,11 @@
trustInformation.setStoreType(
MiscellaneousUtil.getProperty(properties,
TRUST_STORE_TYPE, null));
- trustInformation.setKeyStorePassword(
- MiscellaneousUtil.getProperty(properties, TRUST_STORE_PASSWORD, null));
+
+ trustInformation.setKeyStorePasswordProvider(
+ SecretInformationFactory.createSecretInformation(
+ properties, TRUST_STORE_PASSWORD + DOT, TRUSTSTORE_PASSWORD_PROMPT));
+
String parameterString = MiscellaneousUtil.getProperty(
properties, TRUST_STORE_PARAMETERS, null);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/secret/SecretManager.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/secret/SecretManager.java?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/secret/SecretManager.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/secret/SecretManager.java Tue May 12 05:24:40 2009
@@ -8,7 +8,6 @@
import org.apache.synapse.SynapseException;
import org.apache.synapse.commons.util.MiscellaneousUtil;
import org.apache.synapse.commons.util.jmx.MBeanRegistrar;
-import org.apache.synapse.commons.util.secret.*;
import org.apache.synapse.security.definition.IdentityKeyStoreInformation;
import org.apache.synapse.security.definition.TrustKeyStoreInformation;
import org.apache.synapse.security.definition.factory.KeyStoreInformationFactory;
@@ -35,24 +34,6 @@
private final static String PROP_SECRET_REPOSITORIES = "secretRepositories";
/* Type of the secret repository */
private final static String PROP_PROVIDER = "provider";
- /* Property key secret manager */
- private final static String PROP_SECRET_MANAGER = "secretManager";
- /* Property key password provider */
- private final static String PROP_PASSWORD_PROVIDER = "passwordProvider";
- /* Prompt for trust store password*/
- private final static String TRUSTSTORE_PASSWORD_PROMPT = "Trust Store Password > ";
- /* Prompt for identity store password*/
- private final static String IDENTITYSTORE_PASSWORD_PROMPT = "Identity Store Password > ";
- /* Prompt for identity store private key password*/
- private final static String IDENTITYSTORE_PRIVATE_KEY_PASSWORD_PROMPT
- = "Identity Store Private Key Password > ";
- /* ID for trust store password*/
- private final static String TRUSTSTORE_PASSWORD_ID = "trust.store.pass";
- /* ID for identity store password*/
- private final static String IDENTITYSTORE_PASSWORD_ID = "identity.store.pass";
- /* ID for identity store private key password*/
- private final static String IDENTITYSTORE_PRIVATE_KEY_PASSWORD_ID
- = "identity.key.pass";
/* Dot string */
private final static String DOT = ".";
@@ -121,52 +102,22 @@
return;
}
- SecretCallbackHandler secretCallbackHandler =
- SecretCallbackHandlerFactory.createSecretCallbackHandler(properties,
- PROP_SECRET_MANAGER + DOT + PROP_PASSWORD_PROVIDER);
- if (secretCallbackHandler == null) {
- if (log.isDebugEnabled()) {
- log.debug("Unable to find a SecretCallbackHandler and so " +
- " cannot get passwords required for " +
- "root level secret repositories - trust store password or identity " +
- "store password and it's private key password");
- }
- return;
- }
+ //Create a KeyStore Information for private key entry KeyStore
+ IdentityKeyStoreInformation identityInformation =
+ KeyStoreInformationFactory.createIdentityKeyStoreInformation(properties);
+
+ // Create a KeyStore Information for trusted certificate KeyStore
+ TrustKeyStoreInformation trustInformation =
+ KeyStoreInformationFactory.createTrustKeyStoreInformation(properties);
+
- String identityStorePass;
- String identityKeyPass;
- String trustStorePass;
-
- // Creating required password class backs
- SingleSecretCallback trustStorePassSecretCallback
- = new SingleSecretCallback(TRUSTSTORE_PASSWORD_PROMPT,
- TRUSTSTORE_PASSWORD_ID);
- SingleSecretCallback identityStorePassSecretCallback
- = new SingleSecretCallback(IDENTITYSTORE_PASSWORD_PROMPT,
- IDENTITYSTORE_PASSWORD_ID);
- SingleSecretCallback identityKeyPassSecretCallback
- = new SingleSecretCallback(IDENTITYSTORE_PRIVATE_KEY_PASSWORD_PROMPT,
- IDENTITYSTORE_PRIVATE_KEY_PASSWORD_ID);
-
- // Group all as a one callback
- MultiSecretCallback callback = new MultiSecretCallback();
- callback.addSecretCallback(trustStorePassSecretCallback);
- callback.addSecretCallback(identityStorePassSecretCallback);
- callback.addSecretCallback(identityKeyPassSecretCallback);
- SecretCallback[] secretCallbacks = new SecretCallback[]{callback};
-
- // Create and initiating SecretLoadingModule
- SecretLoadingModule secretLoadingModule = new SecretLoadingModule();
- secretLoadingModule.init(new SecretCallbackHandler[]{secretCallbackHandler});
-
- //load passwords
- secretLoadingModule.load(secretCallbacks);
-
- identityKeyPass = identityKeyPassSecretCallback.getSecret();
- identityStorePass = identityStorePassSecretCallback.getSecret();
- trustStorePass = trustStorePassSecretCallback.getSecret();
+ String identityKeyPass = identityInformation
+ .getKeyPasswordProvider().getResolvedPassword();
+ String identityStorePass = identityInformation
+ .getKeyStorePasswordProvider().getResolvedPassword();
+ String trustStorePass = trustInformation
+ .getKeyStorePasswordProvider().getResolvedPassword();
if (!validatePasswords(identityStorePass, identityKeyPass, trustStorePass)) {
if (log.isDebugEnabled()) {
@@ -176,18 +127,8 @@
return;
}
- //Create a KeyStore Information for private key entry KeyStore
- IdentityKeyStoreInformation keyStoreInformation =
- KeyStoreInformationFactory.createIdentityKeyStoreInformation(properties);
- keyStoreInformation.setKeyStorePassword(identityStorePass);
-
- // Create a KeyStore Information for trusted certificate KeyStore
- TrustKeyStoreInformation trustInformation =
- KeyStoreInformationFactory.createTrustKeyStoreInformation(properties);
- trustInformation.setKeyStorePassword(trustStorePass);
-
IdentityKeyStoreWrapper identityKeyStoreWrapper = new IdentityKeyStoreWrapper();
- identityKeyStoreWrapper.init(keyStoreInformation, identityKeyPass);
+ identityKeyStoreWrapper.init(identityInformation, identityKeyPass);
TrustKeyStoreWrapper trustKeyStoreWrapper = new TrustKeyStoreWrapper();
trustKeyStoreWrapper.init(trustInformation);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/tool/CipherTool.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/tool/CipherTool.java?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/tool/CipherTool.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/security/tool/CipherTool.java Tue May 12 05:24:40 2009
@@ -22,6 +22,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.commons.util.secret.SecretInformation;
import org.apache.synapse.security.definition.CipherInformation;
import org.apache.synapse.security.definition.IdentityKeyStoreInformation;
import org.apache.synapse.security.definition.TrustKeyStoreInformation;
@@ -278,7 +279,9 @@
information.setStoreType(getArgument(cmd, STORE_TYPE, KeyStoreType.JKS.toString()));
String storePass = getArgument(cmd, STORE_PASS, null);
assertEmpty(storePass, STORE_PASS);
- information.setKeyStorePassword(storePass);
+ SecretInformation secretInformation = new SecretInformation();
+ secretInformation.setAliasPassword(storePass);
+ information.setKeyStorePasswordProvider(secretInformation);
return information;
}
@@ -299,7 +302,9 @@
information.setStoreType(getArgument(cmd, STORE_TYPE, KeyStoreType.JKS.toString()));
String storePass = getArgument(cmd, STORE_PASS, null);
assertEmpty(storePass, STORE_PASS);
- information.setKeyStorePassword(storePass);
+ SecretInformation secretInformation = new SecretInformation();
+ secretInformation.setAliasPassword(storePass);
+ information.setKeyStorePasswordProvider(secretInformation);
return information;
}
Modified: synapse/trunk/java/repository/conf/synapse.properties
URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/synapse.properties?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/repository/conf/synapse.properties (original)
+++ synapse/trunk/java/repository/conf/synapse.properties Tue May 12 05:24:40 2009
@@ -47,7 +47,6 @@
#synapse.passwordProvider=org.apache.synapse.security.secret.handler.JlineSecretCallbackHandler
#synapse.passwordProvider=org.apache.synapse.security.secret.handler.JBossEncryptionSecretCallbackHandler
#
-#secretManager.passwordProvider=<any implementation of org.apache.synapse.commons.util.secret.SecretCallbackHandler>
#secretRepositories=file
#secretRepositories.file.provider=org.apache.synapse.security.secret.repository.filebased.FileBaseSecretRepositoryProvider
#secretRepositories.file.location=cipher-text.properties
@@ -55,15 +54,17 @@
#keystore.identity.location=lib/identity.jks
#keystore.identity.type=JKS
#keystore.identity.alias=synapse
-#keystore.identity.storePassword=password
-#keystore.identity.keyPassword=password
-#keystore.identity.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
+#keystore.identity.store.password=password
+#keystore.identity.store.passwordProvider=<any implementation of org.apache.synapse.commons.util.secret.SecretCallbackHandler>
+#keystore.identity.key.password=password
+#keystore.identity.key.passwordProvider=<any implementation of org.apache.synapse.commons.util.secret.SecretCallbackHandler>
+##keystore.identity.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
#
#keystore.trust.location=lib/trust.jks
#keystore.trust.type=JKS
#keystore.trust.alias=synapse
-#keystore.trust.storePassword=password
-#keystore.trust.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
+#keystore.trust.store.password=password
+#keystore.trust.store.passwordProvider=<any implementation of org.apache.synapse.commons.util.secret.SecretCallbackHandler>
#
################################################################################
# DataSources Configuration
@@ -97,7 +98,7 @@
#synapse.datasources.reportds.driverClassName=org.apache.derby.jdbc.ClientDriver
#synapse.datasources.reportds.url=jdbc:derby://localhost:1527/reportdb;create=false
# Optionally you can specifiy a specific password provider implementation which overrides any globally configured provider
-#synapse.datasources.lookupds.passwordProvider=org.apache.synapse.security.secret.handler.JBossEncryptionSecretCallbackHandler
+#synapse.datasources.reportds.passwordProvider=org.apache.synapse.security.secret.handler.JBossEncryptionSecretCallbackHandler
#synapse.datasources.reportds.username=synapse
# Depending on the password provider used, you may have to use an encrypted password here!
#synapse.datasources.reportds.password=synapse
Modified: synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml?rev=773784&r1=773783&r2=773784&view=diff
==============================================================================
--- synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml (original)
+++ synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml Tue May 12 05:24:40 2009
@@ -798,14 +798,14 @@
keystore.identity.location=lib/identity.jks
keystore.identity.type=JKS
keystore.identity.alias=synapse
- keystore.identity.storePassword=password
- keystore.identity.keyPassword=password
+ keystore.identity.store.password=password
+ keystore.identity.key.password=password
#keystore.identity.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
keystore.trust.location=lib/trust.jks
keystore.trust.type=JKS
keystore.trust.alias=synapse
- keystore.trust.storePassword=password
+ keystore.trust.store.password=password
#keystore.trust.parameters=enableHostnameVerifier=false;keyStoreCertificateFilePath=/home/esb.cer
</pre>
@@ -822,30 +822,24 @@
Those are arranged in a cascade manger. Secrets can be accessed by providing alias for those.
Key Stores needed for Secret Manager and secret repositories need to be configured according to
- the <strong>Key Stores Configurations</strong>. In this case, all the passwords in the key store configuration
+ the<strong>Key Stores Configurations</strong>. In this case, all the passwords in the key store
+ configuration
contains only alias to refer actual password. For example
keystore.identity.storePassword=password
- Here <strong>password</strong> is an alias and to be used to get actual password
+ Here
+ <strong>password</strong>
+ is an alias and to be used to get actual password
In order to resolve above passwords (i.e. to get actual passwords); it is needed to provide a
- <strong>password provider</strong> for secret manager. In future, this will be moved into key store
- configurations itself .This can be done by adding property to <strong>synapse.properties</strong>
-
-</p>
-
-<div>
- <p>
- <strong>Secret manager password provider
- <br/>
- </strong>
- </p>
+ <strong>password provider</strong>
+ for each keystore.
+ This can be done by adding property called
+ <strong>passwordProvider= any implementation of org.apache.synapse.commons.util.secret.SecretCallbackHandler
+ </strong>
+ Example
<pre>
- secretManager.passwordProvider=org.apache.synapse.security.secret.handler.JMXSecretCallbackHandler
+ keystore.identity.store.passwordProvider=org.apache.synapse.security.secret.handler.JMXSecretCallbackHandler
</pre>
-</div>
-<p>Note: In the case where use for configuring key store for secret manager, the passwords in the
- above configurations act as only just alias. There are some mechanisms that can be used to
- provide actual password for these aliases. Those are described under <strong>Securing Password</strong>.
</p>
<p>
The <strong>password provider</strong> should be an implementation of
@@ -862,6 +856,9 @@
<li>
org.apache.synapse.security.secret.handler.HardCodedSecretCallbackHandler
</li>
+ <li>
+ org.apache.synapse.security.secret.handler.JBossEncryptionSecretCallbackHandler
+ </li>
</ul>
<p>
When use <strong>org.apache.synapse.security.secret.handler.JMXSecretCallbackHandler</strong>
@@ -1036,11 +1033,11 @@
</strong>
</p>
<p>
- <strong>ciphertool.bat -source testpass -keystore lib\identity.jks -storepass password -alias synapse -keypass password
+ <strong>ciphertool.bat -source testpass -keystore lib\identity.jks -storepass password -alias synapse -keypass password -outencode base64
<br/>
</strong>
</p>
- <pre>ciphertool.bat -source testpass -keystore lib\identity.jks -storepass password -alias synapse -keypass password
+ <pre>ciphertool.bat -source testpass -keystore lib\identity.jks -storepass password -alias synapse -keypass password -outencode base64
Using SYNAPSE_HOME: C:\Project\apache\synapse\synapse4\modules\distribution\ta
rget\synapse-SNAPSHOT