This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit bf134912405a2125b57b0e51b6335158b3fba2d7 Author: Rene Cordier <rcord...@linagora.com> AuthorDate: Wed Mar 11 13:57:13 2020 +0700 JAMES-3078 Guice bindings s/JMAPConfiguration/JMAPDraftConfiguration --- .../apache/james/MemoryJmapJamesServerTest.java | 10 ++--- .../apache/james/jmap/draft/JMAPCommonModule.java | 6 ++- .../jmap/draft/JMAPConfigurationStartUpCheck.java | 4 +- .../org/apache/james/jmap/draft/JMAPModule.java | 28 +++++++++--- .../apache/james/jmap/draft/JmapGuiceProbe.java | 1 + .../modules/protocols/JMAPDraftServerModule.java | 16 +++++-- .../apache/james/modules/TestJMAPServerModule.java | 21 ++++++--- server/pom.xml | 1 + ...figuration.java => JMAPDraftConfiguration.java} | 26 +++-------- .../james/jmap/draft/crypto/SecurityKeyLoader.java | 14 +++--- ...onTest.java => JMAPDraftConfigurationTest.java} | 50 +++++----------------- .../draft/crypto/JamesSignatureHandlerFixture.java | 6 +-- .../jmap/draft/crypto/SecurityKeyLoaderTest.java | 20 ++++----- 13 files changed, 99 insertions(+), 104 deletions(-) diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/MemoryJmapJamesServerTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/MemoryJmapJamesServerTest.java index 17198e7..a58428b 100644 --- a/server/container/guice/memory-guice/src/test/java/org/apache/james/MemoryJmapJamesServerTest.java +++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/MemoryJmapJamesServerTest.java @@ -23,8 +23,8 @@ import static org.apache.james.jmap.draft.JmapJamesServerContract.DOMAIN_LIST_CO import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import org.apache.james.jmap.draft.JMAPConfiguration; import org.apache.james.jmap.draft.JMAPConfigurationStartUpCheck; +import org.apache.james.jmap.draft.JMAPDraftConfiguration; import org.apache.james.jmap.draft.JmapJamesServerContract; import org.apache.james.modules.TestJMAPServerModule; import org.junit.jupiter.api.Nested; @@ -56,9 +56,9 @@ class MemoryJmapJamesServerTest { @RegisterExtension JamesServerExtension jamesServerExtension = extensionBuilder() .disableAutoStart() - .overrideServerModule(binder -> binder.bind(JMAPConfiguration.class) + .overrideServerModule(binder -> binder.bind(JMAPDraftConfiguration.class) .toInstance(TestJMAPServerModule - .jmapConfigurationBuilder() + .jmapDraftConfigurationBuilder() .keystore("badAliasKeystore") .secret("password") .build())) @@ -81,9 +81,9 @@ class MemoryJmapJamesServerTest { @RegisterExtension JamesServerExtension jamesServerExtension = extensionBuilder() .disableAutoStart() - .overrideServerModule(binder -> binder.bind(JMAPConfiguration.class) + .overrideServerModule(binder -> binder.bind(JMAPDraftConfiguration.class) .toInstance(TestJMAPServerModule - .jmapConfigurationBuilder() + .jmapDraftConfigurationBuilder() .secret("WrongSecret") .build())) .build(); diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java index 34184a7..bb51204 100644 --- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java +++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java @@ -39,8 +39,11 @@ import org.apache.james.jmap.draft.model.message.view.MessageFullViewFactory; import org.apache.james.jmap.draft.model.message.view.MessageHeaderViewFactory; import org.apache.james.jmap.draft.model.message.view.MessageMetadataViewFactory; import org.apache.james.jmap.draft.send.MailSpool; -import org.apache.james.jmap.draft.utils.HeadersAuthenticationExtractor; import org.apache.james.jmap.event.ComputeMessageFastViewProjectionListener; +import org.apache.james.jmap.http.AccessTokenAuthenticationStrategy; +import org.apache.james.jmap.http.AuthenticationStrategy; +import org.apache.james.jmap.http.JWTAuthenticationStrategy; +import org.apache.james.jmap.http.QueryParameterAccessTokenAuthenticationStrategy; import org.apache.james.lifecycle.api.StartUpCheck; import org.apache.james.mailbox.events.MailboxListener; import org.apache.james.util.date.DefaultZonedDateTimeProvider; @@ -79,7 +82,6 @@ public class JMAPCommonModule extends AbstractModule { bind(MessageFastViewFactory.class).in(Scopes.SINGLETON); bind(MessageContentExtractor.class).in(Scopes.SINGLETON); - bind(HeadersAuthenticationExtractor.class).in(Scopes.SINGLETON); bind(SecurityKeyLoader.class).in(Scopes.SINGLETON); bind(SignatureHandler.class).to(JamesSignatureHandler.class); diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfigurationStartUpCheck.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfigurationStartUpCheck.java index dd8f4ec..df7c525 100644 --- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfigurationStartUpCheck.java +++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfigurationStartUpCheck.java @@ -32,10 +32,10 @@ public class JMAPConfigurationStartUpCheck implements StartUpCheck { public static final String CHECK_NAME = "JMAPConfigurationStartUpCheck"; private final SecurityKeyLoader securityKeyLoader; - private final JMAPConfiguration jmapConfiguration; + private final JMAPDraftConfiguration jmapConfiguration; @Inject - JMAPConfigurationStartUpCheck(SecurityKeyLoader securityKeyLoader, JMAPConfiguration jmapConfiguration) { + JMAPConfigurationStartUpCheck(SecurityKeyLoader securityKeyLoader, JMAPDraftConfiguration jmapConfiguration) { this.securityKeyLoader = securityKeyLoader; this.jmapConfiguration = jmapConfiguration; } diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPModule.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPModule.java index 030261e..b00e73a 100644 --- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPModule.java +++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPModule.java @@ -29,6 +29,8 @@ import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.ex.ConfigurationException; import org.apache.commons.io.FileUtils; import org.apache.james.filesystem.api.FileSystem; +import org.apache.james.jmap.JMAPConfiguration; +import org.apache.james.jmap.JMAPServer; import org.apache.james.jmap.draft.methods.RequestHandler; import org.apache.james.jmap.draft.send.PostDequeueDecoratorFactory; import org.apache.james.jmap.draft.utils.JsoupHtmlTextExtractor; @@ -44,6 +46,7 @@ import org.apache.james.modules.server.CamelMailetContainerModule; import org.apache.james.queue.api.MailQueueItemDecoratorFactory; import org.apache.james.server.core.configuration.FileConfigurationProvider; import org.apache.james.transport.matchers.RecipientIsLocal; +import org.apache.james.util.Port; import org.apache.james.util.html.HtmlTextExtractor; import org.apache.james.utils.PropertiesProvider; import org.slf4j.Logger; @@ -90,7 +93,6 @@ public class JMAPModule extends AbstractModule { bind(JMAPServer.class).in(Scopes.SINGLETON); bind(RequestHandler.class).in(Scopes.SINGLETON); - bind(UploadHandler.class).in(Scopes.SINGLETON); bind(JsoupHtmlTextExtractor.class).in(Scopes.SINGLETON); bind(HtmlTextExtractor.class).to(JsoupHtmlTextExtractor.class); @@ -107,19 +109,35 @@ public class JMAPModule extends AbstractModule { @Provides @Singleton - JMAPConfiguration provideConfiguration(PropertiesProvider propertiesProvider, FileSystem fileSystem) throws ConfigurationException, IOException { + JMAPConfiguration provideConfiguration(PropertiesProvider propertiesProvider) throws ConfigurationException, IOException { try { Configuration configuration = propertiesProvider.getConfiguration("jmap"); return JMAPConfiguration.builder() .enabled(configuration.getBoolean("enabled", true)) + .port(Port.of(configuration.getInt("jmap.port", DEFAULT_JMAP_PORT))) + .build(); + } catch (FileNotFoundException e) { + LOGGER.warn("Could not find JMAP configuration file. JMAP server will not be enabled."); + return JMAPConfiguration.builder() + .disable() + .build(); + } + } + + @Provides + @Singleton + JMAPDraftConfiguration provideDraftConfiguration(PropertiesProvider propertiesProvider, FileSystem fileSystem) throws ConfigurationException, IOException { + try { + Configuration configuration = propertiesProvider.getConfiguration("jmap"); + return JMAPDraftConfiguration.builder() + .enabled(configuration.getBoolean("enabled", true)) .keystore(configuration.getString("tls.keystoreURL")) .secret(configuration.getString("tls.secret")) .jwtPublicKeyPem(loadPublicKey(fileSystem, Optional.ofNullable(configuration.getString("jwt.publickeypem.url")))) - .port(configuration.getInt("jmap.port", DEFAULT_JMAP_PORT)) .build(); } catch (FileNotFoundException e) { LOGGER.warn("Could not find JMAP configuration file. JMAP server will not be enabled."); - return JMAPConfiguration.builder() + return JMAPDraftConfiguration.builder() .disable() .build(); } @@ -127,7 +145,7 @@ public class JMAPModule extends AbstractModule { @Provides @Singleton - JwtConfiguration providesJwtConfiguration(JMAPConfiguration jmapConfiguration) { + JwtConfiguration providesJwtConfiguration(JMAPDraftConfiguration jmapConfiguration) { return new JwtConfiguration(jmapConfiguration.getJwtPublicKeyPem()); } diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java index 0f2504b..77ef5bc 100644 --- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java +++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java @@ -24,6 +24,7 @@ import java.util.Arrays; import javax.inject.Inject; import org.apache.james.core.Username; +import org.apache.james.jmap.JMAPServer; import org.apache.james.jmap.api.projections.MessageFastViewProjection; import org.apache.james.jmap.api.vacation.AccountId; import org.apache.james.jmap.api.vacation.Vacation; diff --git a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/modules/protocols/JMAPDraftServerModule.java b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/modules/protocols/JMAPDraftServerModule.java index 0cf3ebf..97ee0c2 100644 --- a/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/modules/protocols/JMAPDraftServerModule.java +++ b/server/container/guice/protocols/jmap-draft/src/main/java/org/apache/james/modules/protocols/JMAPDraftServerModule.java @@ -21,12 +21,17 @@ package org.apache.james.modules.protocols; import java.security.Security; -import org.apache.james.jmap.draft.JMAPConfiguration; +import org.apache.james.jmap.JMAPConfiguration; +import org.apache.james.jmap.JMAPRoutes; +import org.apache.james.jmap.JMAPServer; import org.apache.james.jmap.draft.JMAPModule; -import org.apache.james.jmap.draft.JMAPServer; import org.apache.james.jmap.draft.JmapGuiceProbe; import org.apache.james.jmap.draft.MessageIdProbe; import org.apache.james.jmap.draft.crypto.JamesSignatureHandler; +import org.apache.james.jmap.http.AuthenticationRoutes; +import org.apache.james.jmap.http.DownloadRoutes; +import org.apache.james.jmap.http.JMAPApiRoutes; +import org.apache.james.jmap.http.UploadRoutes; import org.apache.james.utils.GuiceProbe; import org.apache.james.utils.InitializationOperation; import org.apache.james.utils.InitilizationOperationBuilder; @@ -43,8 +48,13 @@ public class JMAPDraftServerModule extends AbstractModule { install(new JMAPModule()); Multibinder.newSetBinder(binder(), GuiceProbe.class).addBinding().to(JmapGuiceProbe.class); Multibinder.newSetBinder(binder(), GuiceProbe.class).addBinding().to(MessageIdProbe.class); - } + Multibinder<JMAPRoutes> routesBinder = Multibinder.newSetBinder(binder(), JMAPRoutes.class); + routesBinder.addBinding().to(AuthenticationRoutes.class); + routesBinder.addBinding().to(JMAPApiRoutes.class); + routesBinder.addBinding().to(UploadRoutes.class); + routesBinder.addBinding().to(DownloadRoutes.class); + } @ProvidesIntoSet InitializationOperation startJmap(JMAPServer server, JamesSignatureHandler signatureHandler, JMAPConfiguration jmapConfiguration) { diff --git a/server/container/guice/protocols/jmap-draft/src/test/java/org/apache/james/modules/TestJMAPServerModule.java b/server/container/guice/protocols/jmap-draft/src/test/java/org/apache/james/modules/TestJMAPServerModule.java index 6f1c822..c455d1e 100644 --- a/server/container/guice/protocols/jmap-draft/src/test/java/org/apache/james/modules/TestJMAPServerModule.java +++ b/server/container/guice/protocols/jmap-draft/src/test/java/org/apache/james/modules/TestJMAPServerModule.java @@ -25,7 +25,8 @@ import java.util.Optional; import javax.inject.Singleton; import org.apache.commons.configuration2.ex.ConfigurationException; -import org.apache.james.jmap.draft.JMAPConfiguration; +import org.apache.james.jmap.JMAPConfiguration; +import org.apache.james.jmap.draft.JMAPDraftConfiguration; import org.apache.james.jmap.draft.methods.GetMessageListMethod; import com.google.inject.AbstractModule; @@ -89,13 +90,12 @@ public class TestJMAPServerModule extends AbstractModule { "ICQil1aaN7/2au+p7E4n7nzfYG7nRX5syDoqgBbdhpJxV8/5ohA=\n" + "-----END RSA PRIVATE KEY-----\n"; - public static JMAPConfiguration.Builder jmapConfigurationBuilder() { - return JMAPConfiguration.builder() + public static JMAPDraftConfiguration.Builder jmapDraftConfigurationBuilder() { + return JMAPDraftConfiguration.builder() .enable() .keystore("keystore") .secret("james72laBalle") - .jwtPublicKeyPem(Optional.of(PUBLIC_PEM_KEY)) - .randomPort(); + .jwtPublicKeyPem(Optional.of(PUBLIC_PEM_KEY)); } private final long maximumLimit; @@ -112,6 +112,15 @@ public class TestJMAPServerModule extends AbstractModule { @Provides @Singleton JMAPConfiguration provideConfiguration() throws FileNotFoundException, ConfigurationException { - return jmapConfigurationBuilder().build(); + return JMAPConfiguration.builder() + .enable() + .randomPort() + .build(); + } + + @Provides + @Singleton + JMAPDraftConfiguration provideDraftConfiguration() throws FileNotFoundException, ConfigurationException { + return jmapDraftConfigurationBuilder().build(); } } diff --git a/server/pom.xml b/server/pom.xml index d5ba6da..1cf1d76 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -84,6 +84,7 @@ <module>mailrepository/mailrepository-memory</module> <module>protocols/fetchmail</module> + <module>protocols/jmap</module> <module>protocols/jmap-draft</module> <module>protocols/jmap-draft-integration-testing</module> <module>protocols/jwt</module> diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfiguration.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPDraftConfiguration.java similarity index 82% rename from server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfiguration.java rename to server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPDraftConfiguration.java index 741a059..a390ddd 100644 --- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPConfiguration.java +++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPDraftConfiguration.java @@ -24,7 +24,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.base.Strings; -public class JMAPConfiguration { +public class JMAPDraftConfiguration { public static Builder builder() { return new Builder(); @@ -35,7 +35,6 @@ public class JMAPConfiguration { private String secret; private Optional<Boolean> enabled = Optional.empty(); private Optional<String> jwtPublicKeyPem = Optional.empty(); - private Optional<Integer> port = Optional.empty(); private Builder() { @@ -70,22 +69,12 @@ public class JMAPConfiguration { return this; } - public Builder port(int port) { - this.port = Optional.of(port); - return this; - } - - public Builder randomPort() { - this.port = Optional.empty(); - return this; - } - - public JMAPConfiguration build() { + public JMAPDraftConfiguration build() { Preconditions.checkState(enabled.isPresent(), "You should specify if JMAP server should be started"); Preconditions.checkState(!enabled.get() || !Strings.isNullOrEmpty(keystore), "'keystore' is mandatory"); Preconditions.checkState(!enabled.get() || !Strings.isNullOrEmpty(secret), "'secret' is mandatory"); Preconditions.checkState(!enabled.get() || jwtPublicKeyPem.isPresent(), "'publicKey' is mandatory"); - return new JMAPConfiguration(enabled.get(), keystore, secret, jwtPublicKeyPem, port); + return new JMAPDraftConfiguration(enabled.get(), keystore, secret, jwtPublicKeyPem); } } @@ -94,14 +83,13 @@ public class JMAPConfiguration { private final String keystore; private final String secret; private final Optional<String> jwtPublicKeyPem; - private final Optional<Integer> port; - @VisibleForTesting JMAPConfiguration(boolean enabled, String keystore, String secret, Optional<String> jwtPublicKeyPem, Optional<Integer> port) { + @VisibleForTesting + JMAPDraftConfiguration(boolean enabled, String keystore, String secret, Optional<String> jwtPublicKeyPem) { this.enabled = enabled; this.keystore = keystore; this.secret = secret; this.jwtPublicKeyPem = jwtPublicKeyPem; - this.port = port; } public boolean isEnabled() { @@ -119,8 +107,4 @@ public class JMAPConfiguration { public Optional<String> getJwtPublicKeyPem() { return jwtPublicKeyPem; } - - public Optional<Integer> getPort() { - return port; - } } diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoader.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoader.java index 5643d93..38da9c4 100644 --- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoader.java +++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoader.java @@ -31,7 +31,7 @@ import java.util.Optional; import javax.inject.Inject; import org.apache.james.filesystem.api.FileSystem; -import org.apache.james.jmap.draft.JMAPConfiguration; +import org.apache.james.jmap.draft.JMAPDraftConfiguration; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; @@ -42,21 +42,21 @@ public class SecurityKeyLoader { private static final String JKS = "JKS"; private final FileSystem fileSystem; - private final JMAPConfiguration jmapConfiguration; + private final JMAPDraftConfiguration jmapDraftConfiguration; @VisibleForTesting @Inject - SecurityKeyLoader(FileSystem fileSystem, JMAPConfiguration jmapConfiguration) { + SecurityKeyLoader(FileSystem fileSystem, JMAPDraftConfiguration jmapDraftConfiguration) { this.fileSystem = fileSystem; - this.jmapConfiguration = jmapConfiguration; + this.jmapDraftConfiguration = jmapDraftConfiguration; } public AsymmetricKeys load() throws Exception { - Preconditions.checkState(jmapConfiguration.isEnabled(), "JMAP is not enabled"); + Preconditions.checkState(jmapDraftConfiguration.isEnabled(), "JMAP is not enabled"); KeyStore keystore = KeyStore.getInstance(JKS); - InputStream fis = fileSystem.getResource(jmapConfiguration.getKeystore()); - char[] secret = jmapConfiguration.getSecret().toCharArray(); + InputStream fis = fileSystem.getResource(jmapDraftConfiguration.getKeystore()); + char[] secret = jmapDraftConfiguration.getSecret().toCharArray(); keystore.load(fis, secret); Certificate aliasCertificate = Optional .ofNullable(keystore.getCertificate(ALIAS)) diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPConfigurationTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPDraftConfigurationTest.java similarity index 62% rename from server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPConfigurationTest.java rename to server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPDraftConfigurationTest.java index a9eda51..21ef229 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPConfigurationTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPDraftConfigurationTest.java @@ -24,17 +24,16 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.util.Optional; -import org.apache.james.jmap.draft.JMAPConfiguration; import org.junit.Test; -public class JMAPConfigurationTest { +public class JMAPDraftConfigurationTest { public static final boolean ENABLED = true; public static final boolean DISABLED = false; @Test public void buildShouldThrowWhenKeystoreIsNull() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore(null) .build()) @@ -44,7 +43,7 @@ public class JMAPConfigurationTest { @Test public void buildShouldThrowWhenKeystoreIsEmpty() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore("") .build()) @@ -54,7 +53,7 @@ public class JMAPConfigurationTest { @Test public void buildShouldThrowWhenSecretIsNull() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore("keystore") .secret(null) @@ -65,7 +64,7 @@ public class JMAPConfigurationTest { @Test public void buildShouldThrowWhenSecretIsEmpty() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore("keystore") .secret("") @@ -76,7 +75,7 @@ public class JMAPConfigurationTest { @Test public void buildShouldThrowWhenJwtPublicKeyPemIsNull() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore("keystore") .secret("secret") @@ -87,7 +86,7 @@ public class JMAPConfigurationTest { @Test public void buildShouldThrowWhenJwtPublicKeyPemIsEmpty() { - assertThatThrownBy(() -> JMAPConfiguration.builder() + assertThatThrownBy(() -> JMAPDraftConfiguration.builder() .enable() .keystore("keystore") .secret("secret") @@ -97,44 +96,15 @@ public class JMAPConfigurationTest { } @Test - public void buildShouldWorkWhenRandomPort() { - JMAPConfiguration expectedJMAPConfiguration = new JMAPConfiguration(ENABLED, "keystore", "secret", Optional.of("file://conf/jwt_publickey"), Optional.empty()); - - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() - .enable() - .keystore("keystore") - .secret("secret") - .jwtPublicKeyPem(Optional.of("file://conf/jwt_publickey")) - .randomPort() - .build(); - assertThat(jmapConfiguration).isEqualToComparingFieldByField(expectedJMAPConfiguration); - } - - @Test - public void buildShouldWorkWhenFixedPort() { - JMAPConfiguration expectedJMAPConfiguration = new JMAPConfiguration(ENABLED, "keystore", "secret", Optional.of("file://conf/jwt_publickey"), Optional.of(80)); - - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() - .enable() - .keystore("keystore") - .secret("secret") - .jwtPublicKeyPem(Optional.of("file://conf/jwt_publickey")) - .port(80) - .build(); - assertThat(jmapConfiguration).isEqualToComparingFieldByField(expectedJMAPConfiguration); - } - - @Test public void buildShouldWorkWhenDisabled() { String keystore = null; String secret = null; Optional<String> jwtPublicKeyPem = Optional.empty(); - Optional<Integer> port = Optional.empty(); - JMAPConfiguration expectedJMAPConfiguration = new JMAPConfiguration(DISABLED, keystore, secret, jwtPublicKeyPem, port); + JMAPDraftConfiguration expectedJMAPDraftConfiguration = new JMAPDraftConfiguration(DISABLED, keystore, secret, jwtPublicKeyPem); - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .disable() .build(); - assertThat(jmapConfiguration).isEqualToComparingFieldByField(expectedJMAPConfiguration); + assertThat(jmapDraftConfiguration).isEqualToComparingFieldByField(expectedJMAPDraftConfiguration); } } diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerFixture.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerFixture.java index 03abeb5..8ffe064 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerFixture.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerFixture.java @@ -22,7 +22,7 @@ package org.apache.james.jmap.draft.crypto; import java.util.Optional; import org.apache.james.filesystem.api.FileSystemFixture; -import org.apache.james.jmap.draft.JMAPConfiguration; +import org.apache.james.jmap.draft.JMAPDraftConfiguration; class JamesSignatureHandlerFixture { @@ -38,7 +38,7 @@ class JamesSignatureHandlerFixture { static JamesSignatureHandler defaultSignatureHandler() { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .enable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore("keystore") @@ -47,7 +47,7 @@ class JamesSignatureHandlerFixture { SecurityKeyLoader loader = new SecurityKeyLoader( FileSystemFixture.CLASSPATH_FILE_SYSTEM, - jmapConfiguration); + jmapDraftConfiguration); return new JamesSignatureHandler(loader); } diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoaderTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoaderTest.java index 9816f08..e2b72a1 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoaderTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoaderTest.java @@ -28,7 +28,7 @@ import java.security.KeyStoreException; import java.util.Optional; import org.apache.james.filesystem.api.FileSystemFixture; -import org.apache.james.jmap.draft.JMAPConfiguration; +import org.apache.james.jmap.draft.JMAPDraftConfiguration; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -37,7 +37,7 @@ class SecurityKeyLoaderTest { @Test void loadShouldThrowWhenJMAPIsNotEnabled() throws Exception { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapConfiguration = JMAPDraftConfiguration.builder() .disable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore("keystore") @@ -55,7 +55,7 @@ class SecurityKeyLoaderTest { @Test void loadShouldThrowWhenWrongKeystore() throws Exception { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .enable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore("badAliasKeystore") @@ -64,7 +64,7 @@ class SecurityKeyLoaderTest { SecurityKeyLoader loader = new SecurityKeyLoader( FileSystemFixture.CLASSPATH_FILE_SYSTEM, - jmapConfiguration); + jmapDraftConfiguration); assertThatThrownBy(loader::load) .isInstanceOf(KeyStoreException.class) @@ -73,7 +73,7 @@ class SecurityKeyLoaderTest { @Test void loadShouldThrowWhenWrongPassword() throws Exception { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .enable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore("keystore") @@ -82,7 +82,7 @@ class SecurityKeyLoaderTest { SecurityKeyLoader loader = new SecurityKeyLoader( FileSystemFixture.CLASSPATH_FILE_SYSTEM, - jmapConfiguration); + jmapDraftConfiguration); assertThatThrownBy(loader::load) .isInstanceOf(IOException.class) @@ -91,7 +91,7 @@ class SecurityKeyLoaderTest { @Test void loadShouldReturnAsymmetricKeysWhenCorrectPassword() throws Exception { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .enable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore("keystore") @@ -100,7 +100,7 @@ class SecurityKeyLoaderTest { SecurityKeyLoader loader = new SecurityKeyLoader( FileSystemFixture.CLASSPATH_FILE_SYSTEM, - jmapConfiguration); + jmapDraftConfiguration); assertThat(loader.load()) .isNotNull(); @@ -114,7 +114,7 @@ class SecurityKeyLoaderTest { void loadShouldReturnAsymmetricKeysWhenUsingKeyStoreGeneratedByDifferentJavaVersions( String keyStoreInDifferentVersion) throws Exception { - JMAPConfiguration jmapConfiguration = JMAPConfiguration.builder() + JMAPDraftConfiguration jmapDraftConfiguration = JMAPDraftConfiguration.builder() .enable() .jwtPublicKeyPem(Optional.of(JWT_PUBLIC_KEY)) .keystore(keyStoreInDifferentVersion) @@ -123,7 +123,7 @@ class SecurityKeyLoaderTest { SecurityKeyLoader loader = new SecurityKeyLoader( FileSystemFixture.CLASSPATH_FILE_SYSTEM, - jmapConfiguration); + jmapDraftConfiguration); assertThat(loader.load()) .isNotNull(); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org