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