Próbuję napisać aplikację Java, która uzyskuje dostęp do Exchange Web Services w celu czytania wiadomości e-mail. W związku z tym korzystam z udostępnianego przez Microsoft API Java Web Services (EWS
).Jak korzystać z uwierzytelniania LDAP dla połączenia z usługami Exchange Web Services w Javie?
I already had several issues with it, a w końcu stwierdziłem, że uwierzytelnianie powinno być wykonywane przy użyciu protokołu LDAP. Niestety, nie jestem pewien jak to zrobić. Czy interfejs API EWS pozwala skonfigurować schemat uwierzytelniania, który ma być używany podczas łączenia się z serwerem Exchange? Jeśli tak, jak to skonfigurować?
Jest to kod używam do podłączenia, ale korzysta z domyślnego schematu uwierzytelniania, tj NTLM
:
String url = "https//my-server/EWS/exchange.asmx";
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.setTraceEnabled(true);
service.setCredentials(new WebCredentials("user", "password"));
service.setUrl(url.toURI());
Mailbox mailbox = new Mailbox("[email protected]");
FolderId folder = new FolderId(WellKnownFolderName.Inbox, mailbox);
ItemView view = new ItemView(10);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);
FindItemsResults<Item> items = service.findItems(folder, view);
Postępowałem zgodnie z tymi wskazówkami i zmodyfikowałem NTLM i skompilowałem ze źródła dokładnie tak, jak to opisano tutaj i nadal otrzymywałem te same komunikaty o błędach. Postanowiliśmy zastosować tutaj implementację javamail, która działała: http://stackoverflow.com/a/18043717/445131 –
ta klasa jest wewnętrzną klasą w EwsJCIFSNTLMScheme (api 1.2) – oers