You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/03/30 15:23:35 UTC
svn commit: r1583132 - in /cayenne/main/trunk/cayenne-crypto/src:
main/java/org/apache/cayenne/crypto/ main/java/org/apache/cayenne/crypto/key/
test/java/org/apache/cayenne/crypto/key/
Author: aadamchik
Date: Sun Mar 30 13:23:34 2014
New Revision: 1583132
URL: http://svn.apache.org/r1583132
Log:
javadocs, refactoring
Modified:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoConstants.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoConstants.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoConstants.java?rev=1583132&r1=1583131&r2=1583132&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoConstants.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoConstants.java Sun Mar 30 13:23:34 2014
@@ -39,7 +39,11 @@ public interface CryptoConstants {
public static final String CIPHER_PADDING = "cayenne.crypto.cipher.padding";
- public static final String KEYSTORE_URL = "cayenne.crypto.keystore.url";
+ /**
+ * Defines a URL of a KeyStore of "jceks" type - the only type that supports
+ * secret key storage.
+ */
+ public static final String JCEKS_KEYSTORE_URL = "cayenne.crypto.jceks.keystore.url";
/**
* A password to access a secret key within the keystore.
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java?rev=1583132&r1=1583131&r2=1583132&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java Sun Mar 30 13:23:34 2014
@@ -134,27 +134,39 @@ public class CryptoModuleBuilder {
return this;
}
+ /**
+ * Instructs builder to use a given file to load keystore data. The KeyStore
+ * must be of "jceks" type and contain all needed secret keys for the target
+ * database.
+ */
public CryptoModuleBuilder keyStore(File file) {
this.keyStoreUrl = null;
this.keyStoreUrlString = null;
this.keyStoreFile = file;
-
return this;
}
+ /**
+ * Instructs builder to use a given URL to load keystore data. The KeyStore
+ * must be of "jceks" type and contain all needed secret keys for the target
+ * database.
+ */
public CryptoModuleBuilder keyStore(String url) {
this.keyStoreUrl = null;
this.keyStoreUrlString = url;
this.keyStoreFile = null;
-
return this;
}
+ /**
+ * Instructs builder to use a given URL to load keystore data. The KeyStore
+ * must be of "jceks" type and contain all needed secret keys for the target
+ * database.
+ */
public CryptoModuleBuilder keyStore(URL url) {
this.keyStoreUrl = url;
this.keyStoreUrlString = null;
this.keyStoreFile = null;
-
return this;
}
@@ -205,7 +217,7 @@ public class CryptoModuleBuilder {
.put(CryptoConstants.CIPHER_PADDING, cipherPadding);
if (keyStoreUrl != null) {
- props.put(CryptoConstants.KEYSTORE_URL, keyStoreUrl);
+ props.put(CryptoConstants.JCEKS_KEYSTORE_URL, keyStoreUrl);
}
// char[] credentials... stored as char[] to potentially allow
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java?rev=1583132&r1=1583131&r2=1583132&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java Sun Mar 30 13:23:34 2014
@@ -34,7 +34,9 @@ import org.apache.cayenne.di.Inject;
/**
* A {@link KeySource} based on a JDK KeyStore. DI properties are used to locate
- * the KeyStore and keys within it.
+ * the KeyStore and keys within it. Since Java only supports storing secret keys
+ * in a "jceks" type of of KeyStore, this class assumes that provided keystore
+ * is "jceks", and will throw if it is of a different type.
*
* @since 3.2
*/
@@ -49,9 +51,9 @@ public class KeyStoreKeySource implement
public KeyStoreKeySource(@Inject(CryptoConstants.PROPERTIES_MAP) Map<String, String> properties,
@Inject(CryptoConstants.CREDENTIALS_MAP) Map<String, char[]> credentials) {
- String keyStoreUrl = properties.get(CryptoConstants.KEYSTORE_URL);
+ String keyStoreUrl = properties.get(CryptoConstants.JCEKS_KEYSTORE_URL);
if (keyStoreUrl == null) {
- throw new CayenneCryptoException("KeyStore URL is not set. Property name: " + CryptoConstants.KEYSTORE_URL);
+ throw new CayenneCryptoException("KeyStore URL is not set. Property name: " + CryptoConstants.JCEKS_KEYSTORE_URL);
}
this.keyPassword = credentials.get(CryptoConstants.KEY_PASSWORD);
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java?rev=1583132&r1=1583131&r2=1583132&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java Sun Mar 30 13:23:34 2014
@@ -50,7 +50,7 @@ public class KeyStoreKeySourceTest {
assertNotNull(url);
Map<String, String> props = new HashMap<String, String>();
- props.put(CryptoConstants.KEYSTORE_URL, url.toExternalForm());
+ props.put(CryptoConstants.JCEKS_KEYSTORE_URL, url.toExternalForm());
Map<String, char[]> creds = new HashMap<String, char[]>();
creds.put(CryptoConstants.KEY_PASSWORD, TEST_KEY_PASS);