From aa478dbf9f4428ac0b4d375fa73e7c3210132213 Mon Sep 17 00:00:00 2001 From: jomu Date: Fri, 14 Jun 2019 19:16:44 +0200 Subject: [PATCH] added trace logging --- .../mail/exchange/ExchangeMailReader.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java b/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java index 5d47f67..228aa67 100644 --- a/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java +++ b/network/src/main/java/de/muehlencord/shared/network/mail/exchange/ExchangeMailReader.java @@ -7,12 +7,14 @@ import de.muehlencord.shared.network.mail.MailReaderConnectionException; import de.muehlencord.shared.network.mail.MailReaderException; import java.net.URI; import java.util.ArrayList; +import java.util.EnumSet; import java.util.Iterator; import java.util.List; import microsoft.exchange.webservices.data.autodiscover.IAutodiscoverRedirectionUrl; import microsoft.exchange.webservices.data.core.ExchangeService; import microsoft.exchange.webservices.data.core.PropertySet; import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion; +import microsoft.exchange.webservices.data.core.enumeration.misc.TraceFlags; import microsoft.exchange.webservices.data.core.enumeration.property.BasePropertySet; import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName; import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException; @@ -21,6 +23,7 @@ import microsoft.exchange.webservices.data.core.service.item.Item; import microsoft.exchange.webservices.data.core.service.schema.EmailMessageSchema; import microsoft.exchange.webservices.data.credential.ExchangeCredentials; import microsoft.exchange.webservices.data.credential.WebCredentials; +import microsoft.exchange.webservices.data.misc.ITraceListener; import microsoft.exchange.webservices.data.property.complex.InternetMessageHeaderCollection; import microsoft.exchange.webservices.data.search.FindFoldersResults; import microsoft.exchange.webservices.data.search.FindItemsResults; @@ -35,7 +38,7 @@ import org.slf4j.LoggerFactory; * @author Joern Muehlencord */ public class ExchangeMailReader implements MailReader { - + private static final Logger LOGGER = LoggerFactory.getLogger(ExchangeMailReader.class); private final MailReaderConfiguration configuration; private ExchangeService service = null; @@ -53,10 +56,21 @@ public class ExchangeMailReader implements MailReader { String emailAddress = getConfiguration().getEmailAddress(); service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); + // enable trace logging + service.setTraceEnabled(true); + service.setTraceFlags(EnumSet.allOf(TraceFlags.class)); // can also be restricted + service.setTraceListener(new ITraceListener() { + public void trace(String traceType, String traceMessage) { + if (LOGGER.isTraceEnabled()) { + LOGGER.trace("Type: {}, Message: {}", traceType, traceMessage); + } + } + }); + service.getHttpHeaders().put("cookie-policy", "standard"); ExchangeCredentials credentials = new WebCredentials(userName, password); service.setCredentials(credentials); - if ((hostName == null) || (hostName.trim().equals (""))) { + if ((hostName == null) || (hostName.trim().equals(""))) { service.autodiscoverUrl(emailAddress, new RedirectionUrlCallback()); } else { service.setUrl(new URI(hostName)); @@ -245,15 +259,15 @@ public class ExchangeMailReader implements MailReader { } class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl { - + private static final Logger LOGGER = LoggerFactory.getLogger(RedirectionUrlCallback.class); @Override public boolean autodiscoverRedirectionUrlValidationCallback(String redirectionUrl) { if (LOGGER.isDebugEnabled()) { - LOGGER.debug("redirectUrl found: {}", redirectionUrl); - } - + LOGGER.debug("redirectUrl found: {}", redirectionUrl); + } + return redirectionUrl.toLowerCase().startsWith("https://"); } }