diff --git a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DecryptingReadingConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DecryptingReadingConverter.java index 38edf49a..e7745cd1 100644 --- a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DecryptingReadingConverter.java +++ b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/DecryptingReadingConverter.java @@ -17,6 +17,7 @@ package org.springframework.data.couchbase.core.convert; import java.math.BigDecimal; import java.math.BigInteger; +import java.nio.charset.StandardCharsets; import java.util.HashSet; import java.util.Set; @@ -44,15 +45,11 @@ public class DecryptingReadingConverter implements ConditionalGenericConverter { this.cryptoManager = cryptoManager; } - public void setConversionService(ConversionService conversionService) { - this.conversionService = conversionService; - } - @Override public Set getConvertibleTypes() { Set convertiblePairs = new HashSet<>(); Class[] clazzes = new Class[] { String.class, Integer.class, Long.class, Float.class, Double.class, - BigInteger.class, BigDecimal.class, Boolean.class }; + BigInteger.class, BigDecimal.class, Boolean.class, Enum.class }; for (Class clazz : clazzes) { convertiblePairs.add(new ConvertiblePair(CouchbaseDocument.class, clazz)); } @@ -61,7 +58,8 @@ public class DecryptingReadingConverter implements ConditionalGenericConverter { @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { - return source == null? null : new String(cryptoManager.decrypt(((CouchbaseDocument) source).getContent())); + return source == null ? null + : new String(cryptoManager.decrypt(((CouchbaseDocument) source).getContent()), StandardCharsets.UTF_8); } @Override diff --git a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/EncryptingWritingConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/EncryptingWritingConverter.java index b7ed1d3e..eeb7240e 100644 --- a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/EncryptingWritingConverter.java +++ b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/EncryptingWritingConverter.java @@ -17,6 +17,7 @@ package org.springframework.data.couchbase.core.convert; import java.math.BigDecimal; import java.math.BigInteger; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -48,7 +49,7 @@ public class EncryptingWritingConverter implements ConditionalGenericConverter { Set convertiblePairs = new HashSet<>(); Class[] clazzes = new Class[] { String.class, Integer.class, Long.class, Float.class, Double.class, - BigInteger.class, BigDecimal.class, Boolean.class }; + BigInteger.class, BigDecimal.class, Boolean.class, Enum.class }; for (Class clazz : clazzes) { convertiblePairs.add(new ConvertiblePair(clazz, String.class)); } @@ -63,7 +64,7 @@ public class EncryptingWritingConverter implements ConditionalGenericConverter { com.couchbase.client.java.encryption.annotation.Encrypted ann = sourceType .getAnnotation(com.couchbase.client.java.encryption.annotation.Encrypted.class); Map result = new HashMap<>(); - result.putAll(cryptoManager.encrypt(source.toString().getBytes(), ann.encrypter())); + result.putAll(cryptoManager.encrypt(source.toString().getBytes(StandardCharsets.UTF_8), ann.encrypter())); return new Encrypted(result); } diff --git a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java index bfb0afc4..6e9e41a7 100644 --- a/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java +++ b/spring-data-couchbase/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java @@ -945,7 +945,7 @@ public class MappingCouchbaseConverter extends AbstractCouchbaseConverter implem } else if (value instanceof CouchbaseList) { return (R) readCollection(type, (CouchbaseList) value, parent); } else { - return (R) getPotentiallyConvertedSimpleRead(value, type.getClass()); // type does not have annotations + return (R) getPotentiallyConvertedSimpleRead(value, type.getType()); // type does not have annotations } }