added trace logging

This commit is contained in:
2019-06-14 19:16:44 +02:00
parent 2a75d2a1fe
commit aa478dbf9f

View File

@ -7,12 +7,14 @@ import de.muehlencord.shared.network.mail.MailReaderConnectionException;
import de.muehlencord.shared.network.mail.MailReaderException; import de.muehlencord.shared.network.mail.MailReaderException;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import microsoft.exchange.webservices.data.autodiscover.IAutodiscoverRedirectionUrl; import microsoft.exchange.webservices.data.autodiscover.IAutodiscoverRedirectionUrl;
import microsoft.exchange.webservices.data.core.ExchangeService; import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.PropertySet; import microsoft.exchange.webservices.data.core.PropertySet;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion; 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.BasePropertySet;
import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName; import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;
import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException; 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.core.service.schema.EmailMessageSchema;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials; import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials; 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.property.complex.InternetMessageHeaderCollection;
import microsoft.exchange.webservices.data.search.FindFoldersResults; import microsoft.exchange.webservices.data.search.FindFoldersResults;
import microsoft.exchange.webservices.data.search.FindItemsResults; import microsoft.exchange.webservices.data.search.FindItemsResults;
@ -35,7 +38,7 @@ import org.slf4j.LoggerFactory;
* @author Joern Muehlencord <joern at muehlencord.de> * @author Joern Muehlencord <joern at muehlencord.de>
*/ */
public class ExchangeMailReader implements MailReader { public class ExchangeMailReader implements MailReader {
private static final Logger LOGGER = LoggerFactory.getLogger(ExchangeMailReader.class); private static final Logger LOGGER = LoggerFactory.getLogger(ExchangeMailReader.class);
private final MailReaderConfiguration configuration; private final MailReaderConfiguration configuration;
private ExchangeService service = null; private ExchangeService service = null;
@ -53,10 +56,21 @@ public class ExchangeMailReader implements MailReader {
String emailAddress = getConfiguration().getEmailAddress(); String emailAddress = getConfiguration().getEmailAddress();
service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 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); ExchangeCredentials credentials = new WebCredentials(userName, password);
service.setCredentials(credentials); service.setCredentials(credentials);
if ((hostName == null) || (hostName.trim().equals (""))) { if ((hostName == null) || (hostName.trim().equals(""))) {
service.autodiscoverUrl(emailAddress, new RedirectionUrlCallback()); service.autodiscoverUrl(emailAddress, new RedirectionUrlCallback());
} else { } else {
service.setUrl(new URI(hostName)); service.setUrl(new URI(hostName));
@ -245,15 +259,15 @@ public class ExchangeMailReader implements MailReader {
} }
class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl { class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl {
private static final Logger LOGGER = LoggerFactory.getLogger(RedirectionUrlCallback.class); private static final Logger LOGGER = LoggerFactory.getLogger(RedirectionUrlCallback.class);
@Override @Override
public boolean autodiscoverRedirectionUrlValidationCallback(String redirectionUrl) { public boolean autodiscoverRedirectionUrlValidationCallback(String redirectionUrl) {
if (LOGGER.isDebugEnabled()) { if (LOGGER.isDebugEnabled()) {
LOGGER.debug("redirectUrl found: {}", redirectionUrl); LOGGER.debug("redirectUrl found: {}", redirectionUrl);
} }
return redirectionUrl.toLowerCase().startsWith("https://"); return redirectionUrl.toLowerCase().startsWith("https://");
} }
} }