From e8f03bb5cf81a8d72aa9c61454c58431be3d9985 Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Mon, 16 May 2022 14:50:21 +0200 Subject: [PATCH] [fix] Upgrade JavaMail to 1.6.7, to fix startTtl issue (error "No appropriate protocol (protocol is disabled or cipher suites are inappropriate)") --- duniter4j-core-shared/pom.xml | 8 ++++++-- .../org/duniter/core/service/MailServiceImpl.java | 6 ++++++ .../src/test/resources/disabled_tlsv1.properties | 1 + pom.xml | 13 ++++++++++--- 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 duniter4j-core-shared/src/test/resources/disabled_tlsv1.properties diff --git a/duniter4j-core-shared/pom.xml b/duniter4j-core-shared/pom.xml index 99e919fd..ed6782c2 100644 --- a/duniter4j-core-shared/pom.xml +++ b/duniter4j-core-shared/pom.xml @@ -83,8 +83,12 @@ </dependency> <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> + <groupId>jakarta.mail</groupId> + <artifactId>jakarta.mail-api</artifactId> + </dependency> + <dependency> + <groupId>com.sun.mail</groupId> + <artifactId>jakarta.mail</artifactId> </dependency> <!-- Unit test --> diff --git a/duniter4j-core-shared/src/main/java/org/duniter/core/service/MailServiceImpl.java b/duniter4j-core-shared/src/main/java/org/duniter/core/service/MailServiceImpl.java index f6fd0ace..5c177176 100644 --- a/duniter4j-core-shared/src/main/java/org/duniter/core/service/MailServiceImpl.java +++ b/duniter4j-core-shared/src/main/java/org/duniter/core/service/MailServiceImpl.java @@ -28,6 +28,8 @@ import org.duniter.core.model.SmtpConfig; import org.duniter.core.util.CollectionUtils; import org.duniter.core.util.Preconditions; import org.duniter.core.util.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.activation.CommandMap; import javax.activation.MailcapCommandMap; @@ -41,6 +43,7 @@ import java.util.stream.Collectors; public class MailServiceImpl implements MailService, Closeable { + private static Logger log = LoggerFactory.getLogger(MailServiceImpl.class); private SmtpConfig smtpConfig; private static Session session; private static Transport transport; @@ -280,6 +283,9 @@ public class MailServiceImpl implements MailService, Closeable { if (config.isStartTLS()) { props.put("mail.smtp.starttls.enable", "true"); } + if (log.isDebugEnabled()) { + props.put("mail.debug", "true"); + } boolean useAuth = false; // auto set authentification if smtp user name is provided diff --git a/duniter4j-core-shared/src/test/resources/disabled_tlsv1.properties b/duniter4j-core-shared/src/test/resources/disabled_tlsv1.properties new file mode 100644 index 00000000..8938070f --- /dev/null +++ b/duniter4j-core-shared/src/test/resources/disabled_tlsv1.properties @@ -0,0 +1 @@ +jdk.tls.disabledAlgorithms=MD5withRSA, DH keySize < 768,TLSv1,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_RC4_128_SHA diff --git a/pom.xml b/pom.xml index 417cac1c..ed1b9295 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ <!-- UI versions --> <spring.version>4.2.1.RELEASE</spring.version> <aspectj.version>1.8.7</aspectj.version> + <javaMail.version>1.6.7</javaMail.version> <!-- Unit test --> <junit.version>4.12</junit.version> @@ -223,9 +224,15 @@ <version>2.6</version> </dependency> <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - <version>1.4.7</version> + <groupId>jakarta.mail</groupId> + <artifactId>jakarta.mail-api</artifactId> + <version>${javaMail.version}</version> + </dependency> + <dependency> + <groupId>com.sun.mail</groupId> + <artifactId>jakarta.mail</artifactId> + <version>${javaMail.version}</version> + <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> -- GitLab