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 17:05:31 UTC
svn commit: r1583148 - 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/ test/java/org/apache/cayenne/crypto/key/
Author: aadamchik
Date: Sun Mar 30 15:05:30 2014
New Revision: 1583148
URL: http://svn.apache.org/r1583148
Log:
more refactoring an cleanup
Added:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/JceksKeySource.java
- copied, changed from r1583133, 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/JceksKeySourceTest.java
- copied, changed from r1583133, cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java
Removed:
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
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.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=1583148&r1=1583147&r2=1583148&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 15:05:30 2014
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.cayenne.crypto;
+import org.apache.cayenne.crypto.key.KeySource;
+
/**
* @since 3.2
*/
@@ -40,10 +42,11 @@ public interface CryptoConstants {
public static final String CIPHER_PADDING = "cayenne.crypto.cipher.padding";
/**
- * Defines a URL of a KeyStore of "jceks" type - the only type that supports
- * secret key storage.
+ * Defines a URL of a KeyStore. The actual format depends on the
+ * {@link KeySource} implementation that will be reading it. E.g. it can be
+ * a "jceks" Java key store.
*/
- public static final String JCEKS_KEYSTORE_URL = "cayenne.crypto.jceks.keystore.url";
+ public static final String KEYSTORE_URL = "cayenne.crypto.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=1583148&r1=1583147&r2=1583148&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 15:05:30 2014
@@ -28,7 +28,7 @@ import org.apache.cayenne.crypto.batch.C
import org.apache.cayenne.crypto.cipher.CipherFactory;
import org.apache.cayenne.crypto.cipher.DefaultCipherFactory;
import org.apache.cayenne.crypto.key.KeySource;
-import org.apache.cayenne.crypto.key.KeyStoreKeySource;
+import org.apache.cayenne.crypto.key.JceksKeySource;
import org.apache.cayenne.crypto.map.ColumnMapper;
import org.apache.cayenne.crypto.map.PatternColumnMapper;
import org.apache.cayenne.crypto.reader.CryptoRowReaderFactoryDecorator;
@@ -80,7 +80,7 @@ public class CryptoModuleBuilder {
this.cipherPadding = DEFAULT_CIPHER_PADDING;
this.cipherFactoryType = DefaultCipherFactory.class;
- this.keySourceType = KeyStoreKeySource.class;
+ this.keySourceType = JceksKeySource.class;
this.columnMapperPattern = "^CRYPTO_";
}
@@ -127,7 +127,7 @@ public class CryptoModuleBuilder {
}
/**
- * Sets a password used that unlocks a secret key.
+ * Sets a password that unlocks a secret key.
*/
public CryptoModuleBuilder keyPassword(char[] password) {
this.keyPassword = password;
@@ -217,7 +217,7 @@ public class CryptoModuleBuilder {
.put(CryptoConstants.CIPHER_PADDING, cipherPadding);
if (keyStoreUrl != null) {
- props.put(CryptoConstants.JCEKS_KEYSTORE_URL, keyStoreUrl);
+ props.put(CryptoConstants.KEYSTORE_URL, keyStoreUrl);
}
// char[] credentials... stored as char[] to potentially allow
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/JceksKeySource.java (from r1583133, 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/JceksKeySource.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/JceksKeySource.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/key/KeyStoreKeySource.java&r1=1583133&r2=1583148&rev=1583148&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/JceksKeySource.java Sun Mar 30 15:05:30 2014
@@ -33,14 +33,13 @@ import org.apache.cayenne.crypto.CryptoC
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. 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.
+ * A {@link KeySource} based on a Java "jceks" KeyStore. Uses
+ * {@link CryptoConstants#KEYSTORE_URL} to locate the keystore and
+ * {@link CryptoConstants#KEY_PASSWORD} to read the secret key.
*
* @since 3.2
*/
-public class KeyStoreKeySource implements KeySource {
+public class JceksKeySource implements KeySource {
// this is the only standard keystore type that supports storing secret keys
private static final String JCEKS_KEYSTORE_TYPE = "jceks";
@@ -48,12 +47,13 @@ public class KeyStoreKeySource implement
private KeyStore keyStore;
private char[] keyPassword;
- public KeyStoreKeySource(@Inject(CryptoConstants.PROPERTIES_MAP) Map<String, String> properties,
+ public JceksKeySource(@Inject(CryptoConstants.PROPERTIES_MAP) Map<String, String> properties,
@Inject(CryptoConstants.CREDENTIALS_MAP) Map<String, char[]> credentials) {
- String keyStoreUrl = properties.get(CryptoConstants.JCEKS_KEYSTORE_URL);
+ String keyStoreUrl = properties.get(CryptoConstants.KEYSTORE_URL);
if (keyStoreUrl == null) {
- throw new CayenneCryptoException("KeyStore URL is not set. Property name: " + CryptoConstants.JCEKS_KEYSTORE_URL);
+ throw new CayenneCryptoException("KeyStore URL is not set. Property name: "
+ + CryptoConstants.KEYSTORE_URL);
}
this.keyPassword = credentials.get(CryptoConstants.KEY_PASSWORD);
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java?rev=1583148&r1=1583147&r2=1583148&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java Sun Mar 30 15:05:30 2014
@@ -24,7 +24,7 @@ import static org.junit.Assert.assertNot
import java.security.Key;
import org.apache.cayenne.crypto.key.KeySource;
-import org.apache.cayenne.crypto.key.KeyStoreKeySourceTest;
+import org.apache.cayenne.crypto.key.JceksKeySourceTest;
import org.apache.cayenne.crypto.transformer.value.JceValueTransformerFactory;
import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
@@ -35,8 +35,8 @@ public class CryptoModuleBuilderTest {
@Test
public void testBuild_KeySource() {
- Module m = new CryptoModuleBuilder().keyPassword(KeyStoreKeySourceTest.TEST_KEY_PASS)
- .keyStore(KeyStoreKeySourceTest.class.getResource(KeyStoreKeySourceTest.KS1_JCEKS))
+ Module m = new CryptoModuleBuilder().keyPassword(JceksKeySourceTest.TEST_KEY_PASS)
+ .keyStore(JceksKeySourceTest.class.getResource(JceksKeySourceTest.KS1_JCEKS))
.valueTransformer(JceValueTransformerFactory.class).build();
Injector injector = DIBootstrap.createInjector(m);
Copied: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/JceksKeySourceTest.java (from r1583133, 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/JceksKeySourceTest.java?p2=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/JceksKeySourceTest.java&p1=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/key/KeyStoreKeySourceTest.java&r1=1583133&r2=1583148&rev=1583148&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/JceksKeySourceTest.java Sun Mar 30 15:05:30 2014
@@ -31,7 +31,7 @@ import org.apache.cayenne.crypto.Cayenne
import org.apache.cayenne.crypto.CryptoConstants;
import org.junit.Test;
-public class KeyStoreKeySourceTest {
+public class JceksKeySourceTest {
public static final char[] TEST_KEY_PASS = "testkeypass".toCharArray();
public static final String KS1_JCEKS = "ks1.jceks";
@@ -40,7 +40,7 @@ public class KeyStoreKeySourceTest {
public void testConstructor_NoUrl() {
Map<String, String> props = new HashMap<String, String>();
Map<String, char[]> creds = new HashMap<String, char[]>();
- new KeyStoreKeySource(props, creds);
+ new JceksKeySource(props, creds);
}
@Test
@@ -50,12 +50,12 @@ public class KeyStoreKeySourceTest {
assertNotNull(url);
Map<String, String> props = new HashMap<String, String>();
- props.put(CryptoConstants.JCEKS_KEYSTORE_URL, url.toExternalForm());
+ props.put(CryptoConstants.KEYSTORE_URL, url.toExternalForm());
Map<String, char[]> creds = new HashMap<String, char[]>();
creds.put(CryptoConstants.KEY_PASSWORD, TEST_KEY_PASS);
- KeyStoreKeySource ks = new KeyStoreKeySource(props, creds);
+ JceksKeySource ks = new JceksKeySource(props, creds);
assertNull(ks.getKey("no-such-key"));