FYI, this ended up being a limitation in libsoup.  I've submitted a
patch there; looks like it just got a response:

https://bugzilla.gnome.org/show_bug.cgi?id=739192

The issue occurs when a server is configured to require NTLMv2 Session
Security support.  ("NTLMv2 Session Security" is, despite the name, an
extension to regular NTLM.)

Adam

On Sun, Oct 12, 2014 at 11:39 AM, Adam Seering <aseer...@gmail.com> wrote:
> Update:  I've opened things up in gdb and poked around a bit.  This
> code is using some glib async API's that I'm not familiar with, but
> I've traced things to the following possibly-interesting point in
> execution:
>
> """ evolution-data-server-3.12.6/libebackend/e-authentication-mediator.c
> 851        if (mediator->priv->client_cancelled) {
> (gdb) p mediator->priv->client_cancelled
> $4 = 0
> (gdb) n
> 854                "%s", _("Client cancelled the operation"));
> """
>
> (At this point, I've entered a password into the UI, but the dialog
> hasn't yet closed.)
>
> This is Evolution 3.12 as currently distributed with Ubuntu 14.10
> ("apt-get install" for the binary, "apt-get source" for the source
> code).  I've tried 3.13 from the 'fta1' PPA on launchpad.net; it
> didn't fix the issue, I could debug that version further if you think
> there are relevant changes.
>
> If anyone has any thoughts or pointers, let me know.
>
> Thanks,
> Adam
>
>
>
> On Sun, Oct 12, 2014 at 11:25 AM, Adam Seering <aseer...@gmail.com> wrote:
>> Oops, I forgot to reply-all.  Re-sending:
>>
>> Hi Milan,
>>
>> Thanks for the reply, and for the curl command.  I tried running the
>> command and it had no trouble authenticating -- it made an initial
>> request, got a HTTP 401 asking for NTLM auth, then re-used the same
>> connection and made a second request, successfully authenticating and
>> returning a blob of XML containing (among other things) the string "No
>> mailbox with such guid."
>>
>> Is there anything else I can check?
>>
>> I'd be glad to download and poke at the source code to any of these
>> components if that would be useful, but I've never worked with this
>> codebase so I don't know what to look at.  I'm also glad to run other
>> debugging commands, etc.
>>
>> Thanks,
>> Adam
>>
>> On Fri, Oct 10, 2014 at 1:43 AM, Milan Crha <mc...@redhat.com> wrote:
>>> On Thu, 2014-10-09 at 19:13 -0400, Adam Seering wrote:
>>>> Hi all,
>>>>     I have access to two Exchange (EWS) accounts.  One of them works
>>>> great.  The other one won't accept my password, so I can't log in.
>>>> It
>>>> worked great earlier this year, but something in the server's
>>>> configuration seems to have changed.  (I don't know what.)
>>>>
>>>>     If I run with EWS_DEBUG=2, I get the following request/response
>>>> pair every time I enter my password:
>>>
>>>         Hi,
>>> this handshake pair is usual. libsoup tries to connect to the server,
>>> it responds that authorization is needed, then libsoup asks an
>>> application for a password and re-sends the message to the server with
>>> given credentials.
>>>
>>>> < WWW-Authenticate: Negotiate
>>>> < WWW-Authenticate: NTLM
>>>> ...
>>>> Looks like it's never trying to re-connect using NTLM?  Anyone have
>>>> any guesses as to what's going on, or suggestions for things to try
>>>> to do to improve it?
>>>
>>> So your server supports either GSSAPI/Kerberos authentication or NTLM.
>>> I would verify that you have set the NTLM in account preferences and
>>> that the address of the host (Host URL) begins with https://. There
>>> are servers which require Basic authentication, but that is not
>>> advertised by your server. I'm not aware of any server which would
>>> allow http:// (insecure) connection.
>>>
>>> Maybe you can try to connect to the server with curl, and if it'll
>>> work, then there can be some glitch either in evolution-ews or in
>>> libsoup. The curl command looks like this:
>>>
>>>    curl -v -k --user USERNAME:PASSWORD -X POST -d @e.xml --ntlm \
>>>       https://exchange.example.com/EWS/Exchange.asmx \
>>>       --header 'Content-Type: text/xml; charset=utf-8'
>>>
>>> Run it in a folder which contains the attached e.xml file. The request
>>> as such will fail, because you won't have the requested item in your
>>> account, but that's fine, because we are only trying to authenticate
>>> and connect to the server.
>>>         Bye,
>>>         Milan
>>> _______________________________________________
>>> evolution-list mailing list
>>> evolution-list@gnome.org
>>> To change your list options or unsubscribe, visit ...
>>> https://mail.gnome.org/mailman/listinfo/evolution-list
>>>
_______________________________________________
evolution-list mailing list
evolution-list@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-list

Reply via email to