Skip to content

Commit e198637

Browse files
sxhinzvcchristophstrobl
authored andcommitted
Polishing.
Remove duplicate test configuration. Original Pull Request: #4447
1 parent 5407456 commit e198637

File tree

2 files changed

+2
-137
lines changed

2 files changed

+2
-137
lines changed

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/BypassAutoEncryptionTest.java

+1-42
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,10 @@
1616

1717
package org.springframework.data.mongodb.core.encryption;
1818

19-
import java.util.Collections;
20-
21-
import org.bson.BsonBinary;
2219
import org.junit.jupiter.api.Disabled;
2320
import org.junit.jupiter.api.extension.ExtendWith;
2421
import org.springframework.beans.factory.annotation.Autowired;
25-
import org.springframework.context.ApplicationContext;
26-
import org.springframework.context.annotation.Bean;
2722
import org.springframework.context.annotation.Configuration;
28-
import org.springframework.data.convert.PropertyValueConverterFactory;
29-
import org.springframework.data.mongodb.core.convert.MongoCustomConversions.MongoConverterConfigurationAdapter;
30-
import org.springframework.data.mongodb.core.convert.encryption.MongoEncryptionConverter;
31-
import org.springframework.data.mongodb.core.encryption.BypassAutoEncryptionTest.Config;
32-
import org.springframework.data.util.Lazy;
3323
import org.springframework.test.context.ContextConfiguration;
3424
import org.springframework.test.context.junit.jupiter.SpringExtension;
3525

@@ -38,8 +28,6 @@
3828
import com.mongodb.MongoClientSettings.Builder;
3929
import com.mongodb.client.MongoClient;
4030
import com.mongodb.client.MongoClients;
41-
import com.mongodb.client.model.vault.DataKeyOptions;
42-
import com.mongodb.client.vault.ClientEncryptions;
4331

4432
/**
4533
* Encryption tests for client having {@link AutoEncryptionSettings#isBypassAutoEncryption()}.
@@ -48,7 +36,7 @@
4836
* @author Julia Lee
4937
*/
5038
@ExtendWith(SpringExtension.class)
51-
@ContextConfiguration(classes = Config.class)
39+
@ContextConfiguration(classes = BypassAutoEncryptionTest.Config.class)
5240
public class BypassAutoEncryptionTest extends AbstractEncryptionTestBase {
5341

5442
@Disabled
@@ -60,8 +48,6 @@ void altKeyDetection(@Autowired CachingMongoClientEncryption mongoClientEncrypti
6048
@Configuration
6149
static class Config extends EncryptionConfig {
6250

63-
@Autowired ApplicationContext applicationContext;
64-
6551
@Override
6652
protected void configureClientSettings(Builder builder) {
6753

@@ -74,32 +60,5 @@ protected void configureClientSettings(Builder builder) {
7460
.keyVaultNamespace(clientEncryptionSettings.getKeyVaultNamespace()) //
7561
.bypassAutoEncryption(true).build());
7662
}
77-
78-
@Override
79-
protected void configureConverters(MongoConverterConfigurationAdapter converterConfigurationAdapter) {
80-
81-
converterConfigurationAdapter
82-
.registerPropertyValueConverterFactory(PropertyValueConverterFactory.beanFactoryAware(applicationContext))
83-
.useNativeDriverJavaTimeCodecs();
84-
}
85-
86-
@Bean
87-
@Override
88-
MongoEncryptionConverter encryptingConverter(MongoClientEncryption mongoClientEncryption) {
89-
90-
Lazy<BsonBinary> dataKey = Lazy.of(() -> mongoClientEncryption.getClientEncryption().createDataKey("local",
91-
new DataKeyOptions().keyAltNames(Collections.singletonList("mySuperSecretKey"))));
92-
93-
return new MongoEncryptionConverter(mongoClientEncryption,
94-
EncryptionKeyResolver.annotated((ctx) -> EncryptionKey.keyId(dataKey.get())));
95-
}
96-
97-
@Bean
98-
@Override
99-
CachingMongoClientEncryption clientEncryption(ClientEncryptionSettings encryptionSettings) {
100-
return new CachingMongoClientEncryption(() -> ClientEncryptions.create(encryptionSettings));
101-
}
102-
10363
}
104-
10564
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/EncryptionTests.java

+1-95
Original file line numberDiff line numberDiff line change
@@ -15,110 +15,16 @@
1515
*/
1616
package org.springframework.data.mongodb.core.encryption;
1717

18-
import java.security.SecureRandom;
19-
import java.util.Collections;
20-
import java.util.Map;
21-
22-
import org.bson.BsonBinary;
23-
import org.bson.Document;
2418
import org.junit.jupiter.api.extension.ExtendWith;
25-
import org.springframework.beans.factory.annotation.Autowired;
26-
import org.springframework.context.ApplicationContext;
27-
import org.springframework.context.annotation.Bean;
28-
import org.springframework.context.annotation.Configuration;
29-
import org.springframework.data.convert.PropertyValueConverterFactory;
30-
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
31-
import org.springframework.data.mongodb.core.convert.MongoCustomConversions.MongoConverterConfigurationAdapter;
32-
import org.springframework.data.mongodb.core.convert.encryption.MongoEncryptionConverter;
33-
import org.springframework.data.mongodb.core.encryption.EncryptionTests.Config;
34-
import org.springframework.data.util.Lazy;
3519
import org.springframework.test.context.ContextConfiguration;
3620
import org.springframework.test.context.junit.jupiter.SpringExtension;
3721

38-
import com.mongodb.ClientEncryptionSettings;
39-
import com.mongodb.ConnectionString;
40-
import com.mongodb.MongoClientSettings;
41-
import com.mongodb.MongoNamespace;
42-
import com.mongodb.client.MongoClient;
43-
import com.mongodb.client.MongoCollection;
44-
import com.mongodb.client.model.Filters;
45-
import com.mongodb.client.model.IndexOptions;
46-
import com.mongodb.client.model.Indexes;
47-
import com.mongodb.client.model.vault.DataKeyOptions;
48-
import com.mongodb.client.vault.ClientEncryptions;
49-
5022
/**
5123
* @author Christoph Strobl
5224
* @author Julia Lee
5325
*/
5426
@ExtendWith(SpringExtension.class)
55-
@ContextConfiguration(classes = Config.class)
27+
@ContextConfiguration(classes = AbstractEncryptionTestBase.EncryptionConfig.class)
5628
public class EncryptionTests extends AbstractEncryptionTestBase {
5729

58-
@Configuration
59-
static class Config extends AbstractMongoClientConfiguration {
60-
61-
@Autowired ApplicationContext applicationContext;
62-
63-
@Override
64-
protected String getDatabaseName() {
65-
return "fle-test";
66-
}
67-
68-
@Bean
69-
@Override
70-
public MongoClient mongoClient() {
71-
return super.mongoClient();
72-
}
73-
74-
@Override
75-
protected void configureConverters(MongoConverterConfigurationAdapter converterConfigurationAdapter) {
76-
77-
converterConfigurationAdapter
78-
.registerPropertyValueConverterFactory(PropertyValueConverterFactory.beanFactoryAware(applicationContext))
79-
.useNativeDriverJavaTimeCodecs();
80-
}
81-
82-
@Bean
83-
MongoEncryptionConverter encryptingConverter(MongoClientEncryption mongoClientEncryption) {
84-
85-
Lazy<BsonBinary> dataKey = Lazy.of(() -> mongoClientEncryption.getClientEncryption().createDataKey("local",
86-
new DataKeyOptions().keyAltNames(Collections.singletonList("mySuperSecretKey"))));
87-
88-
return new MongoEncryptionConverter(mongoClientEncryption,
89-
EncryptionKeyResolver.annotated((ctx) -> EncryptionKey.keyId(dataKey.get())));
90-
}
91-
92-
@Bean
93-
CachingMongoClientEncryption clientEncryption(ClientEncryptionSettings encryptionSettings) {
94-
return new CachingMongoClientEncryption(() -> ClientEncryptions.create(encryptionSettings));
95-
}
96-
97-
@Bean
98-
ClientEncryptionSettings encryptionSettings(MongoClient mongoClient) {
99-
100-
MongoNamespace keyVaultNamespace = new MongoNamespace("encryption.testKeyVault");
101-
MongoCollection<Document> keyVaultCollection = mongoClient.getDatabase(keyVaultNamespace.getDatabaseName())
102-
.getCollection(keyVaultNamespace.getCollectionName());
103-
keyVaultCollection.drop();
104-
// Ensure that two data keys cannot share the same keyAltName.
105-
keyVaultCollection.createIndex(Indexes.ascending("keyAltNames"),
106-
new IndexOptions().unique(true).partialFilterExpression(Filters.exists("keyAltNames")));
107-
108-
MongoCollection<Document> collection = mongoClient.getDatabase(getDatabaseName()).getCollection("test");
109-
collection.drop(); // Clear old data
110-
111-
byte[] localMasterKey = new byte[96];
112-
new SecureRandom().nextBytes(localMasterKey);
113-
Map<String, Map<String, Object>> kmsProviders = Map.of("local", Map.of("key", localMasterKey));
114-
115-
// Create the ClientEncryption instance
116-
return ClientEncryptionSettings.builder()
117-
.keyVaultMongoClientSettings(
118-
MongoClientSettings.builder().applyConnectionString(new ConnectionString("mongodb://localhost")).build()) //
119-
.keyVaultNamespace(keyVaultNamespace.getFullName()) //
120-
.kmsProviders(kmsProviders) //
121-
.build();
122-
}
123-
}
12430
}

0 commit comments

Comments
 (0)