diff --git a/grader/pom.xml b/grader/pom.xml index dcb0673dd..18a91ac6b 100644 --- a/grader/pom.xml +++ b/grader/pom.xml @@ -64,7 +64,7 @@ com.icegreen greenmail - 2.0.1 + 2.1.12 test diff --git a/grader/src/it/java/edu/pdx/cs/joy/grader/GreenmailIntegrationTestCase.java b/grader/src/it/java/edu/pdx/cs/joy/grader/GreenmailIntegrationTestCase.java index 54454abc1..5240be7f2 100644 --- a/grader/src/it/java/edu/pdx/cs/joy/grader/GreenmailIntegrationTestCase.java +++ b/grader/src/it/java/edu/pdx/cs/joy/grader/GreenmailIntegrationTestCase.java @@ -8,14 +8,12 @@ import com.icegreen.greenmail.user.GreenMailUser; import com.icegreen.greenmail.util.GreenMail; import com.icegreen.greenmail.util.ServerSetup; -import com.sun.mail.util.MailSSLSocketFactory; import jakarta.mail.*; import jakarta.mail.internet.InternetAddress; import jakarta.mail.internet.MimeMessage; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import java.security.GeneralSecurityException; import java.util.Properties; public class GreenmailIntegrationTestCase { @@ -78,12 +76,10 @@ protected Folder openFolder(Store store, String folderName) throws MessagingExce return folder; } - protected Store connectToIMAPServer() throws GeneralSecurityException, MessagingException { + protected Store connectToIMAPServer() throws MessagingException { Properties props = new Properties(); - - MailSSLSocketFactory socketFactory = new MailSSLSocketFactory(); - socketFactory.setTrustedHosts(new String[]{"127.0.0.1", "localhost"}); - props.put("mail.imaps.ssl.socketFactory", socketFactory); + props.put("mail.imaps.ssl.trust", emailServerHost); + props.put("mail.imaps.ssl.checkserveridentity", "false"); Session session = Session.getInstance(props, null); Store store = session.getStore("imaps"); diff --git a/grader/src/it/java/edu/pdx/cs/joy/grader/poa/POASubmissionsDownloaderIT.java b/grader/src/it/java/edu/pdx/cs/joy/grader/poa/POASubmissionsDownloaderIT.java index 5e8d6f72d..1ab5de13b 100644 --- a/grader/src/it/java/edu/pdx/cs/joy/grader/poa/POASubmissionsDownloaderIT.java +++ b/grader/src/it/java/edu/pdx/cs/joy/grader/poa/POASubmissionsDownloaderIT.java @@ -23,6 +23,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalToIgnoringCase; import static org.mockito.Mockito.*; public class POASubmissionsDownloaderIT extends GreenmailIntegrationTestCase { @@ -88,7 +89,7 @@ private void assertEmailIsProperlyProcessed(String subject, String poa, String s POASubmission submission = captor.getValue(); assertThat(submission.getSubject(), equalTo(subject)); assertThat(submission.getContent(), equalTo(poa)); - assertThat(submission.getContentType(), equalTo(contentType)); + assertThat(submission.getContentType(), equalToIgnoringCase(contentType)); assertThat(submission.getSubmitter(), equalTo(sender)); ArgumentCaptor statusCaptor = ArgumentCaptor.forClass(StatusMessage.class); diff --git a/grader/src/main/java/edu/pdx/cs/joy/grader/GraderEmailAccount.java b/grader/src/main/java/edu/pdx/cs/joy/grader/GraderEmailAccount.java index 1614dca45..6bc25a756 100644 --- a/grader/src/main/java/edu/pdx/cs/joy/grader/GraderEmailAccount.java +++ b/grader/src/main/java/edu/pdx/cs/joy/grader/GraderEmailAccount.java @@ -1,13 +1,11 @@ package edu.pdx.cs.joy.grader; import com.google.common.annotations.VisibleForTesting; -import com.sun.mail.util.MailSSLSocketFactory; import jakarta.mail.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -280,9 +278,8 @@ private Store connectToIMAPServer() { Properties props = new Properties(); if (this.trustLocalhostSSL) { - MailSSLSocketFactory socketFactory= new MailSSLSocketFactory(); - socketFactory.setTrustedHosts("127.0.0.1", "localhost"); - props.put("mail.imaps.ssl.socketFactory", socketFactory); + props.put("mail.imaps.ssl.trust", "127.0.0.1 localhost"); + props.put("mail.imaps.ssl.checkserveridentity", "false"); } Session session = Session.getInstance(props, null); @@ -290,7 +287,7 @@ private Store connectToIMAPServer() { store.connect(this.emailServerHostName, this.emailServerPort, this.userName, this.password); return store; - } catch (MessagingException | GeneralSecurityException ex) { + } catch (MessagingException ex) { throw new IllegalStateException("While connecting to " + this.emailServerHostName + ":" + this.emailServerPort, ex); } }