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"));