diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestFormat.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestFormat.java index 3e38069..696ce87 100644 --- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestFormat.java +++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestFormat.java @@ -3,17 +3,11 @@ package com.alexanderlogistics; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.SimpleDateFormat; -import java.util.Optional; import java.util.logging.Logger; -import org.imixs.workflow.FileData; -import org.imixs.workflow.exceptions.PluginException; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; -import junit.framework.Assert; - /** * This test generates random test data * diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticator.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticator.java deleted file mode 100644 index 7725f6e..0000000 --- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticator.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.alexanderlogistics; - -import java.util.Properties; -import java.util.logging.Logger; - -import javax.mail.MessagingException; -import javax.mail.Store; - -import org.imixs.archive.importer.DocumentImportService; -import org.imixs.archive.importer.mail.IMAPOutlookAuthenticator; -import org.imixs.workflow.ItemCollection; -import org.junit.Before; -import org.junit.Test; - -import junit.framework.Assert; - -/** - * This Imixs IMAPAuthenticator - * @author rsoika - * - */ -public class TestIMAPAuhtenticator { - - - private final static Logger logger = Logger.getLogger(TestIMAPAuhtenticator.class.getName()); - - @Before - public void setUp() throws Exception { - - } - - /** - * Test imap connect via oauth - * - * https://techcommunity.microsoft.com/t5/exchange/javamail-connecting-to-office-365-xoauth2-for-imap/m-p/1505026 - */ - @Test - public void testOutlookToken() { - - IMAPOutlookAuthenticator auth=new IMAPOutlookAuthenticator(); - - - ItemCollection source=new ItemCollection(); - source.setItemValue(DocumentImportService.SOURCE_ITEM_SERVER, "outlook.office365.com"); - source.setItemValue(DocumentImportService.SOURCE_ITEM_PORT, "993"); - source.setItemValue(DocumentImportService.SOURCE_ITEM_USER, "imixs@alexander-logistics.com"); - source.setItemValue(DocumentImportService.SOURCE_ITEM_PASSWORD, "A6x8Q~EWVUyt~gfyTHtIJf4ig.F9tajUpEEXMaCL"); - - - - - - Properties sourceOptions = new Properties(); - sourceOptions.put("microsoft.tenantid", "51e2f038-0a96-41be-801d-bb4118aa018e"); - sourceOptions.put("microsoft.clientid", "39e9eec5-6939-47dc-9729-3438a9898e63"); - - try { - Store store = auth.openMessageStore(source, sourceOptions); - - Assert.assertNotNull(store); - } catch (MessagingException e) { - e.printStackTrace(); - Assert.fail(); - - } - - } - - - -} diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticators.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticators.java new file mode 100644 index 0000000..7d72d7e --- /dev/null +++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPAuhtenticators.java @@ -0,0 +1,87 @@ +package com.alexanderlogistics; + +import java.util.Properties; + +import javax.mail.MessagingException; +import javax.mail.Store; + +import org.imixs.archive.importer.DocumentImportService; +import org.imixs.archive.importer.mail.IMAPBasicAuthenticator; +import org.imixs.archive.importer.mail.IMAPOutlookAuthenticator; +import org.imixs.workflow.ItemCollection; +import org.junit.Test; + +import junit.framework.Assert; + +/** + * This test class test the Imixs IMAPAuthenticator classes + * + * @author rsoika + * + */ +public class TestIMAPAuhtenticators { + + /** + * Test IMAP connect via OAuth + * + * https://techcommunity.microsoft.com/t5/exchange/javamail-connecting-to-office-365-xoauth2-for-imap/m-p/1505026 + */ + @Test + public void testOutlookAuthenticator() { + + IMAPOutlookAuthenticator auth = new IMAPOutlookAuthenticator(); + + ItemCollection source = new ItemCollection(); + source.setItemValue(DocumentImportService.SOURCE_ITEM_SERVER, "outlook.office365.com"); + source.setItemValue(DocumentImportService.SOURCE_ITEM_PORT, "993"); + source.setItemValue(DocumentImportService.SOURCE_ITEM_USER, "imixs@alexander-logistics.com"); + source.setItemValue(DocumentImportService.SOURCE_ITEM_PASSWORD, "A6x8Q~EWVUyt~gfyTHtIJf4ig.F9tajUpEEXMaCL"); + + Properties sourceOptions = new Properties(); + sourceOptions.put("microsoft.tenantid", "51e2f038-0a96-41be-801d-bb4118aa018e"); + sourceOptions.put("microsoft.clientid", "39e9eec5-6939-47dc-9729-3438a9898e63"); + + try { + Store store = auth.openMessageStore(source, sourceOptions); + Assert.assertNotNull(store); + } catch (MessagingException e) { + e.printStackTrace(); + Assert.fail(); + + } + + } + + /** + * Test IMAP connect via Basic Authentication + *
+ * NOTE: This test should fail in December 2022 as Basic Authentication is no
+ * longer supported by Microsoft Outlook.
+ *
+ */
+ @Test
+ public void testBasicAuthenticator() {
+
+ IMAPBasicAuthenticator auth = new IMAPBasicAuthenticator();
+
+ ItemCollection source = new ItemCollection();
+ source.setItemValue(DocumentImportService.SOURCE_ITEM_SERVER, "outlook.office365.com");
+ source.setItemValue(DocumentImportService.SOURCE_ITEM_PORT, "993");
+ source.setItemValue(DocumentImportService.SOURCE_ITEM_USER, "imixs@alexander-logistics.com");
+
+ source.setItemValue(DocumentImportService.SOURCE_ITEM_PASSWORD, "i^i$oe-!+o1o0io(");
+
+ Properties sourceOptions = new Properties();
+
+ try {
+ Store store = auth.openMessageStore(source, sourceOptions);
+ Assert.assertNotNull(store);
+ } catch (MessagingException e) {
+ e.printStackTrace();
+ Assert.fail();
+
+ }
+
+ }
+
+}
diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOauth2.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOauth2.java
deleted file mode 100644
index 4ec6964..0000000
--- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOauth2.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.alexanderlogistics;
-
-import java.util.Properties;
-import java.util.logging.Logger;
-
-import javax.mail.MessagingException;
-import javax.mail.NoSuchProviderException;
-import javax.mail.Session;
-import javax.mail.Store;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import junit.framework.Assert;
-
-/**
- * This test generates random test data
- *
- * https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#get-an-access-token
- *
- * @author rsoika
- *
- */
-public class TestIMAPOauth2 {
-
- final static String FILE = "/DTVF_SKBeschrift_21010.csv";
-
- private final static Logger logger = Logger.getLogger(TestIMAPOauth2.class.getName());
-
- @Before
- public void setUp() throws Exception {
-
- }
-
- /**
- * Test imap connect via oauth
- *
- * https://techcommunity.microsoft.com/t5/exchange/javamail-connecting-to-office-365-xoauth2-for-imap/m-p/1505026
- */
- @Test
- public void testIMAP() {
- try {
- Properties properties = new Properties();
- properties.put("mail.imap.ssl.enable", "true");
- properties.put("mail.imap.auth.mechanisms", "XOAUTH2");
- properties.put("mail.imap.auth.mechanisms", "XOAUTH2");
- properties.put("mail.imap.sasl.mechanisms", "XOAUTH2");
- properties.put("mail.imap.sasl.enable", "true");
- // properties.put("mail.imap.sasl.enable", "true"); un-commented still results
- // are same
- properties.put("mail.imap.auth.login.disable", "true");
- properties.put("mail.imap.auth.plain.disable", "true");
-
- // Activate debug mode
- properties.put("mail.debug", "true");
- properties.put("mail.debug.auth", "true");
-
- String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
- properties.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);
- properties.setProperty("mail.imap.socketFactory.fallback", "false");
- properties.setProperty("mail.imap.socketFactory.port", "993");
- properties.setProperty("mail.imap.starttls.enable", "true");
-
-
- Session session = Session.getInstance(properties);
- session.setDebug(true);
-
- String userEmail = "imixs@alexander-logistics.com";
- // i^i$oe-!+o1o0io(
- String accessToken = "accessToken";
-
- Store store;
-
- store = session.getStore("imap");
-
- String url="outlook.office365.com";
- //String url="https://outlook.office.com/IMAP.AccessAsUser.All";
- store.connect(url, 993, userEmail, accessToken);
- } catch (MessagingException e) {
-
- e.printStackTrace();
- Assert.fail();
- }
- }
-
-
-
-}
diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPGetToken.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
similarity index 70%
rename from office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPGetToken.java
rename to office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
index 37c9bb5..6b92cc3 100644
--- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPGetToken.java
+++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
@@ -30,61 +30,14 @@ import com.sun.mail.imap.IMAPFolder;
import junit.framework.Assert;
/**
- * This test generates
+ * This test shows how to access outlook via oauth2
*
* See: https://www.java-forum.org/thema/javamail-mit-oauth2-an-o365.199133/
*
* @author rsoika
*
*/
-public class TestIMAPGetToken {
-
- /**
- * Tests the Imap access
- */
- @Test
- public void imapAccess() {
- String mailServerAdress = "outlook.office365.com";
- // String mailboxUserName = "###MyUserName###";
- String mailboxUserName = "imixs@alexander-logistics.com";
- String mailboxPassword = "###MyPassword###";
- String protocol = "imaps";
-
- String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
- Properties props = new Properties();
-
- props.put("mail.imap.ssl.enable", "true");
- props.put("mail.imap.port", "993");
-
- props.put("mail.imap.auth.mechanisms", "XOAUTH2");
- props.put("mail.imap.sasl.mechanisms", "XOAUTH2");
-
- props.put("mail.imap.auth.login.disable", "true");
- props.put("mail.imap.auth.plain.disable", "true");
-
- props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);
- props.setProperty("mail.imap.socketFactory.fallback", "false");
- props.setProperty("mail.imap.socketFactory.port", "993");
- props.setProperty("mail.imap.starttls.enable", "true");
-
- props.put("mail.debug", "true");
- props.put("mail.debug.auth", "true");
- try {
-
- mailboxPassword = getAuthToken();
- System.out.println("info: AccessToken: " + mailboxPassword);
-
- Session session = Session.getInstance(props);
- session.setDebug(true);
- System.out.println("info: properties: " + session.getProperties().toString());
- Store store = session.getStore(protocol);
- store.connect(mailServerAdress, mailboxUserName, mailboxPassword);
- } catch (Exception e) {
-
- e.printStackTrace();
- Assert.fail();
- }
- }
+public class TestIMAPOutlookOAuth {
@Test
public void imapAccess2() {
@@ -126,7 +79,6 @@ public class TestIMAPGetToken {
System.out.println("OAUTH2 IMAP trying to connect with system properties to Host:" + host + ", Port: "
+ port + ", userEmailId: " + userEmailId + ", AccessToken: " + oauth2AccessToken);
- String anderesPasswort = "i^i$oe-!+o1o0io(";
store.connect(host, userEmailId, oauth2AccessToken);
System.out.println("IMAP connected with system properties to Host:" + host + ", Port: " + port
+ ", userEmailId: " + userEmailId + ", AccessToken: " + oauth2AccessToken);
@@ -201,11 +153,8 @@ public class TestIMAPGetToken {
@Test
public void testGetToken() {
try {
-
String token = getAuthToken();
-
System.out.println("....access token = " + token);
-
} catch (Exception e) {
e.printStackTrace();
Assert.fail();
@@ -306,50 +255,6 @@ public class TestIMAPGetToken {
return result;
}
- /**
- * Helper method to receive a Microsoft access Token
- *
- * @return
- * @throws IOException
- * @throws ClientProtocolException
- */
- public String getAuthTokenOld() throws ClientProtocolException, IOException {
- CloseableHttpClient client = HttpClients.createDefault();
- String tanantId = "51e2f038-0a96-41be-801d-bb4118aa018e";
- String clientId = "75657ae4-465d-4245-9c1f-ebd6fdfc4814";
- // String clientId = "6ed3fb66-a16a-47da-a4ae-fb3d8690b117";
- String objectId = "229d0e4f-eef1-476c-9b8c-97c437a93314";
- // String client_secret= "2a41bf2d-ffd8-444d-a2c5-6a4a418650ba";
- String client_secret = "EM_8Q~6HRhhKhwJKAIXQcRdlJzn.iOj2Fq3Yhdo_";
-
- HttpPost loginPost = new HttpPost("https://login.microsoftonline.com/" + tanantId + "/oauth2/v2.0/token");
- String scopes = "https://outlook.office365.com/.default";
- // scopes="https://outlook.office365.com/IMAP.AccessAsUser.All";
- // scopes="https://graph.microsoft.com/.default";
- // scopes="openid profile offline_access https://outlook.office365.com/SMTP.Send
- // https://outlook.office365.com/POP.AccessAsUser.All
- // https://outlook.office365.com/IMAP.AccessAsUser.All";
-
- String encodedBody = "client_id=" + clientId + "&scope=" + scopes + "&client_secret=" + client_secret
- + "&grant_type=client_credentials";
-
- loginPost.setEntity(new StringEntity(encodedBody, ContentType.APPLICATION_FORM_URLENCODED));
-
- loginPost.addHeader(new BasicHeader("cache-control", "no-cache"));
- CloseableHttpResponse loginResponse = client.execute(loginPost);
-
- InputStream inputStream = loginResponse.getEntity().getContent();
- byte[] response = readAllBytes(inputStream);
- ObjectMapper objectMapper = new ObjectMapper();
- JavaType type = objectMapper.constructType(
- objectMapper.getTypeFactory().constructParametricType(Map.class, String.class, String.class));
- Map