You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/12/04 08:48:55 UTC
[2/8] james-project git commit: JAMES-2589 Encrypted Payload
Configuration does not work
JAMES-2589 Encrypted Payload Configuration does not work
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/eccab454
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/eccab454
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/eccab454
Branch: refs/heads/master
Commit: eccab4541b5c5484ac8f683879ec5e6e1363928a
Parents: 0e3ffde
Author: tran tien duc <dt...@linagora.com>
Authored: Thu Nov 29 18:44:20 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 4 15:47:08 2018 +0700
----------------------------------------------------------------------
.../objectstorage/ObjectStorageBlobsDAO.java | 6 ++-
.../guice/DockerSwiftTestRule.java | 18 ++++++++
.../james/CassandraRabbitMQJamesServerTest.java | 44 ++++++++++++++++++--
.../james/modules/SwiftBlobStoreExtension.java | 11 ++++-
4 files changed, 72 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/eccab454/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
index b83d2c4..00b9b97 100644
--- a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
+++ b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java
@@ -39,7 +39,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.fge.lambdas.Throwing;
-import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.hash.Hashing;
import com.google.common.hash.HashingInputStream;
@@ -143,8 +142,11 @@ public class ObjectStorageBlobsDAO implements BlobStore {
}
- @VisibleForTesting
public void deleteContainer() {
blobStore.deleteContainer(containerName.value());
}
+
+ public PayloadCodec getPayloadCodec() {
+ return payloadCodec;
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/eccab454/server/container/guice/blob-objectstorage-guice/src/test/java/org/apache/james/modules/objectstorage/guice/DockerSwiftTestRule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/blob-objectstorage-guice/src/test/java/org/apache/james/modules/objectstorage/guice/DockerSwiftTestRule.java b/server/container/guice/blob-objectstorage-guice/src/test/java/org/apache/james/modules/objectstorage/guice/DockerSwiftTestRule.java
index 1f3c34a..d813f85 100644
--- a/server/container/guice/blob-objectstorage-guice/src/test/java/org/apache/james/modules/objectstorage/guice/DockerSwiftTestRule.java
+++ b/server/container/guice/blob-objectstorage-guice/src/test/java/org/apache/james/modules/objectstorage/guice/DockerSwiftTestRule.java
@@ -27,12 +27,14 @@ import org.apache.james.CleanupTasksPerformer;
import org.apache.james.GuiceModuleTestRule;
import org.apache.james.blob.objectstorage.ContainerName;
import org.apache.james.blob.objectstorage.ObjectStorageBlobsDAO;
+import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.blob.objectstorage.swift.Credentials;
import org.apache.james.blob.objectstorage.swift.SwiftKeystone2ObjectStorage;
import org.apache.james.blob.objectstorage.swift.TenantName;
import org.apache.james.blob.objectstorage.swift.UserName;
import org.apache.james.modules.objectstorage.ObjectStorageBlobConfiguration;
import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.apache.james.utils.GuiceProbe;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
@@ -41,6 +43,20 @@ import com.google.inject.multibindings.Multibinder;
public class DockerSwiftTestRule implements GuiceModuleTestRule {
+ public static class TestSwiftBlobStoreProbe implements GuiceProbe {
+
+ private final ObjectStorageBlobsDAO swiftBlobStore;
+
+ @Inject
+ TestSwiftBlobStoreProbe(ObjectStorageBlobsDAO swiftBlobStore) {
+ this.swiftBlobStore = swiftBlobStore;
+ }
+
+ public PayloadCodec getSwiftPayloadCodec() {
+ return swiftBlobStore.getPayloadCodec();
+ }
+ }
+
private static class ContainerCleanUp implements CleanupTasksPerformer.CleanupTask {
private final ObjectStorageBlobsDAO blobsDAO;
@@ -104,6 +120,8 @@ public class DockerSwiftTestRule implements GuiceModuleTestRule {
Multibinder.newSetBinder(binder, CleanupTasksPerformer.CleanupTask.class)
.addBinding()
.to(ContainerCleanUp.class);
+
+ Multibinder.newSetBinder(binder, GuiceProbe.class).addBinding().to(TestSwiftBlobStoreProbe.class);
};
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/eccab454/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerTest.java
index f4f9885..61fe428 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerTest.java
@@ -19,13 +19,18 @@
package org.apache.james;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.awaitility.Duration.ONE_HUNDRED_MILLISECONDS;
-import static org.junit.jupiter.api.TestInstance.*;
+import static org.junit.jupiter.api.TestInstance.Lifecycle;
+import org.apache.james.blob.objectstorage.DefaultPayloadCodec;
+import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.core.Domain;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.SwiftBlobStoreExtension;
import org.apache.james.modules.TestJMAPServerModule;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.apache.james.modules.objectstorage.guice.DockerSwiftTestRule;
import org.apache.james.modules.protocols.ImapGuiceProbe;
import org.apache.james.modules.protocols.SmtpGuiceProbe;
import org.apache.james.utils.DataProbeImpl;
@@ -66,7 +71,7 @@ class CassandraRabbitMQJamesServerTest {
}
}
- interface ContratSuite extends JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {}
+ interface ContractSuite extends JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {}
private static final String DOMAIN = "domain";
private static final String JAMES_USER = "james-user@" + DOMAIN;
@@ -87,7 +92,29 @@ class CassandraRabbitMQJamesServerTest {
@Nested
@TestInstance(Lifecycle.PER_CLASS)
- class WithSwift implements ContratSuite {
+ class WithEncryptedSwift implements ContractSuite {
+ @RegisterExtension
+ JamesServerExtension testExtension = new JamesServerExtensionBuilder()
+ .extension(new EmbeddedElasticSearchExtension())
+ .extension(new CassandraExtension())
+ .extension(new RabbitMQExtension())
+ .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256))
+ .server(CONFIGURATION_BUILDER)
+ .build();
+
+ @Test
+ void encryptedPayloadShouldBeConfiguredWhenProvidingEncryptedPayloadConfigurationButNot(GuiceJamesServer jamesServer) {
+ PayloadCodec payloadCodec = jamesServer.getProbe(DockerSwiftTestRule.TestSwiftBlobStoreProbe.class)
+ .getSwiftPayloadCodec();
+
+ assertThat(payloadCodec)
+ .isInstanceOf(DefaultPayloadCodec.class);
+ }
+ }
+
+ @Nested
+ @TestInstance(Lifecycle.PER_CLASS)
+ class WithDefaultSwift implements ContractSuite {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerExtensionBuilder()
.extension(new EmbeddedElasticSearchExtension())
@@ -96,11 +123,20 @@ class CassandraRabbitMQJamesServerTest {
.extension(new SwiftBlobStoreExtension())
.server(CONFIGURATION_BUILDER)
.build();
+
+ @Test
+ void defaultPayloadShouldBeByDefault(GuiceJamesServer jamesServer) {
+ PayloadCodec payloadCodec = jamesServer.getProbe(DockerSwiftTestRule.TestSwiftBlobStoreProbe.class)
+ .getSwiftPayloadCodec();
+
+ assertThat(payloadCodec)
+ .isInstanceOf(DefaultPayloadCodec.class);
+ }
}
@Nested
@TestInstance(Lifecycle.PER_CLASS)
- class WithoutSwift implements ContratSuite {
+ class WithoutSwift implements ContractSuite {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerExtensionBuilder()
.extension(new EmbeddedElasticSearchExtension())
http://git-wip-us.apache.org/repos/asf/james-project/blob/eccab454/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/SwiftBlobStoreExtension.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/SwiftBlobStoreExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/SwiftBlobStoreExtension.java
index 71d4d92..d113f1d 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/SwiftBlobStoreExtension.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/SwiftBlobStoreExtension.java
@@ -21,6 +21,7 @@ package org.apache.james.modules;
import org.apache.james.GuiceModuleTestExtension;
import org.apache.james.modules.blobstore.BlobStoreChoosingConfiguration;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
import org.apache.james.modules.objectstorage.guice.DockerSwiftTestRule;
import org.junit.jupiter.api.extension.ExtensionContext;
@@ -29,7 +30,15 @@ import com.google.inject.util.Modules;
public class SwiftBlobStoreExtension implements GuiceModuleTestExtension {
- private final DockerSwiftTestRule swiftRule = new DockerSwiftTestRule();
+ private final DockerSwiftTestRule swiftRule;
+
+ public SwiftBlobStoreExtension() {
+ this.swiftRule = new DockerSwiftTestRule();
+ }
+
+ public SwiftBlobStoreExtension(PayloadCodecFactory payloadCodecFactory) {
+ this.swiftRule = new DockerSwiftTestRule(payloadCodecFactory);
+ }
@Override
public void beforeAll(ExtensionContext extensionContext) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org