You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ab...@apache.org on 2019/06/27 11:10:16 UTC
[cayenne] 02/05: CAY-2584 Crypto: can't use ColumnSelect with
encrypted columns
This is an automated email from the ASF dual-hosted git repository.
abulatski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 7fc1031280998b3c7ebdf1e7fa49a34ad888e600
Author: Arseni Bulatski <an...@gmail.com>
AuthorDate: Mon Jun 10 12:39:57 2019 +0300
CAY-2584 Crypto: can't use ColumnSelect with encrypted columns
---
.../java/org/apache/cayenne/crypto/CryptoModule.java | 2 +-
.../cayenne/crypto/CryptoServerModuleProvider.java | 11 ++++++-----
.../crypto/reader/CryptoRowReaderFactoryDecorator.java | 10 ++++------
.../access/jdbc/reader/DefaultRowReaderFactory.java | 18 +++++++++---------
4 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
index 597f34d..3c08c8e 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModule.java
@@ -139,7 +139,7 @@ public class CryptoModule implements Module {
binder.bind(ColumnMapper.class).toInstance(new PatternColumnMapper(DEFAULT_COLUMN_MAPPER_PATTERN));
binder.decorate(BatchTranslatorFactory.class).before(CryptoBatchTranslatorFactoryDecorator.class);
- binder.decorate(RowReaderFactory.class).before(CryptoRowReaderFactoryDecorator.class);
+ binder.bind(RowReaderFactory.class).to(CryptoRowReaderFactoryDecorator.class);
// decorate Crypto's own services to allow Cayenne to operate over plaintext entities even if crypto keys are
// not available.
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoServerModuleProvider.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoServerModuleProvider.java
index 8e7fa4d..9c62bb5 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoServerModuleProvider.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoServerModuleProvider.java
@@ -18,12 +18,13 @@
*/
package org.apache.cayenne.crypto;
-import org.apache.cayenne.configuration.server.CayenneServerModuleProvider;
-import org.apache.cayenne.di.Module;
-
import java.util.Collection;
import java.util.Collections;
+import org.apache.cayenne.configuration.server.CayenneServerModuleProvider;
+import org.apache.cayenne.configuration.server.ServerModule;
+import org.apache.cayenne.di.Module;
+
/**
* @since 4.0
*/
@@ -41,7 +42,7 @@ public class CryptoServerModuleProvider implements CayenneServerModuleProvider {
@Override
public Collection<Class<? extends Module>> overrides() {
- // we don't override anything, we only decorate ServerModule services...
- return Collections.emptyList();
+ Collection modules = Collections.singletonList(ServerModule.class);
+ return modules;
}
}
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
index 524a7fa..688d787 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/reader/CryptoRowReaderFactoryDecorator.java
@@ -18,11 +18,13 @@
****************************************************************/
package org.apache.cayenne.crypto.reader;
+import java.sql.ResultSet;
+import java.util.Map;
+
import org.apache.cayenne.access.jdbc.ColumnDescriptor;
import org.apache.cayenne.access.jdbc.RowDescriptor;
import org.apache.cayenne.access.jdbc.reader.DefaultRowReaderFactory;
import org.apache.cayenne.access.jdbc.reader.RowReader;
-import org.apache.cayenne.access.jdbc.reader.RowReaderFactory;
import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.crypto.map.ColumnMapper;
@@ -41,9 +43,6 @@ import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.QueryMetadata;
import org.apache.cayenne.query.ScalarResultSegment;
-import java.sql.ResultSet;
-import java.util.Map;
-
public class CryptoRowReaderFactoryDecorator extends DefaultRowReaderFactory {
private TransformerFactory transformerFactory;
@@ -51,8 +50,7 @@ public class CryptoRowReaderFactoryDecorator extends DefaultRowReaderFactory {
private BytesTransformerFactory bytesTransformerFactory;
private ValueTransformerFactory valueTransformerFactory;
- public CryptoRowReaderFactoryDecorator(@Inject RowReaderFactory delegate,
- @Inject TransformerFactory transformerFactory,
+ public CryptoRowReaderFactoryDecorator(@Inject TransformerFactory transformerFactory,
@Inject ColumnMapper columnMapper,
@Inject BytesTransformerFactory bytesTransformerFactory,
@Inject ValueTransformerFactory valueTransformerFactory) {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
index 8229f17..db41752 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
@@ -18,6 +18,13 @@
****************************************************************/
package org.apache.cayenne.access.jdbc.reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.jdbc.ColumnDescriptor;
import org.apache.cayenne.access.jdbc.RowDescriptor;
@@ -33,13 +40,6 @@ import org.apache.cayenne.query.QueryMetadata;
import org.apache.cayenne.query.ScalarResultSegment;
import org.apache.cayenne.reflect.ClassDescriptor;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
/**
* @since 4.0
*/
@@ -108,7 +108,7 @@ public class DefaultRowReaderFactory implements RowReaderFactory {
}
}
- private RowReader<?> createFullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata,
+ protected RowReader<?> createFullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata,
PostprocessorFactory postProcessorFactory) {
if (queryMetadata.getPageSize() > 0) {
@@ -120,7 +120,7 @@ public class DefaultRowReaderFactory implements RowReaderFactory {
}
}
- private class PostprocessorFactory {
+ protected class PostprocessorFactory {
private QueryMetadata queryMetadata;
private ExtendedTypeMap extendedTypes;