https://bugs.freedesktop.org/show_bug.cgi?id=56240
--- Comment #9 from Tobias Mueller <[email protected]> --- (In reply to comment #4) > Hmm, somehow libneon doesn't include credentials in the request header here, > despite recognizing the challenge (the "auth" output is from libneon). > > I'm out of ideas. Can you recompile from source with the Basic > authentication disabled? In Neon.cpp, comment out the content of > Session::forceAuthorization(). > I tried. As ./configure --enable-dav --enable-developer-mode --prefix=/tmp/syncevolution/ --with-synthesis-src=git://gitorious.org/libsynthesis/libsynthesis.git failed with: configure: error: need at least libsynthesis >= 3.4.0.16.8; the latest libsynthesis for SyncEvolution is the one from http://meego.gitorious.org/meego-middleware/libsynthesis I tried to ./configure --enable-dav --enable-developer-mode --prefix=/tmp/syncevolution/ --with-synthesis-src=../libsynthesis after having checked it out there. CONFIGURATION SUMMARY Core SyncEvolution: yes activesync: no addressbook: no akonadi: no ebook: yes ecal: yes file: yes kcalextended: no maemocal: no pbap: no qtcontacts: no sqlite: no dav: yes xmlrpc: no DBus service: no org._01.pim support in DBus service: Notifications: GIO GDBus: yes GNOME keyring: yes UI (DBus client): no Bluetooth transport: yes GNOME Bluetooth panel plugin: no SHA-256: glib API documentation: no D-Bus Timeout Hack: yes but after making, ./src/syncevolution fails: $ syncevolution --versionSyncEvolution 1.3.99.1+20121117+SE+f80ff66+unclean (pre-release) Loading backend library /home/muelli/git/syncevolution/src/backends/activesync/.libs/syncactivesync.so Loading backend library /home/muelli/git/syncevolution/src/backends/addressbook/.libs/syncaddressbook.so Loading backend library /home/muelli/git/syncevolution/src/backends/akonadi/.libs/syncakonadi.so Loading backend library /home/muelli/git/syncevolution/src/backends/evolution/.libs/syncebook.so Loading backend library /home/muelli/git/syncevolution/src/backends/evolution/.libs/syncecal.so Loading backend library /home/muelli/git/syncevolution/src/backends/file/.libs/syncfile.so Loading backend library /home/muelli/git/syncevolution/src/backends/gnome/.libs/platformgnome.so Loading backend library /home/muelli/git/syncevolution/src/backends/kcalextended/.libs/synckcalextended.so Loading backend library /home/muelli/git/syncevolution/src/backends/kde/.libs/platformkde.so Loading backend library /home/muelli/git/syncevolution/src/backends/maemo/.libs/syncmaemocal.so Loading backend library /home/muelli/git/syncevolution/src/backends/pbap/.libs/syncpbap.so Loading backend library /home/muelli/git/syncevolution/src/backends/qtcontacts/.libs/syncqtcontacts.so Loading backend library /home/muelli/git/syncevolution/src/backends/sqlite/.libs/syncsqlite.so Loading backend library /home/muelli/git/syncevolution/src/backends/webdav/.libs/syncdav.so Loading backend library /home/muelli/git/syncevolution/src/backends/xmlrpc/.libs/syncxmlrpc.so $ syncevolution --daemon=no --configure --template webdav username=user1 password=pw1 syncURL=${URL} target-config@radicale [ERROR] No configuration template for 'webdav' available. [INFO] All relevant properties seem to be set, omit the --template parameter to proceed. [INFO] [INFO] Available configuration templates (clients and servers): [INFO] template name = template description [INFO] none After having it make installed, it worked better, though. But with my patch: commit f80ff66d2ae9a93808f22fa8bb1c90170a92d68b Author: Tobias Mueller <[email protected]> Date: Sat Nov 17 04:29:38 2012 +0100 unforce authorization diff --git a/src/backends/webdav/NeonCXX.cpp b/src/backends/webdav/NeonCXX.cpp index 26a6ea5..62db8dd 100644 --- a/src/backends/webdav/NeonCXX.cpp +++ b/src/backends/webdav/NeonCXX.cpp @@ -316,9 +316,10 @@ int Session::getCredentials(void *userdata, const char *realm, int attempt, ch void Session::forceAuthorization(const std::string &username, const std::string &password) { - m_forceAuthorizationOnce = true; +/* m_forceAuthorizationOnce = true; m_forceUsername = username; m_forcePassword = password; +*/ } void Session::preSendHook(ne_request *req, void *userdata, ne_buffer *header) throw() it doesn't authenticate properly: $ SYNCEVOLUTION_DEBUG=1 syncevolution --daemon=no loglevel=4 --run target-config@radicale cards1 [DEBUG 00:00:00] Sat 2012-11-17 04:01:49 UTC = 05:01 +0100 CET [DEVELOPER 00:00:00] SyncML server account: user1 [DEVELOPER 00:00:00] client: SyncEvolution 1.3.99.1+20121117+SE+f80ff66+unclean for workstation [DEVELOPER 00:00:00] device ID: syncevolution-3e6db3aa-82f0-4f47-bb4f-63d0c9f7d2df [DEVELOPER 00:00:00] [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends/ [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//activesync/.libs [DEVELOPER 00:00:00] Loading backend library syncactivesync.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//addressbook/.libs [DEVELOPER 00:00:00] Loading backend library syncaddressbook.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//akonadi/.libs [DEVELOPER 00:00:00] Loading backend library syncakonadi.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//evolution/.libs [DEVELOPER 00:00:00] Loading backend library syncebook.so [DEVELOPER 00:00:00] Loading backend library syncecal.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//file/.libs [DEVELOPER 00:00:00] Loading backend library syncfile.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//gnome/.libs [DEVELOPER 00:00:00] Loading backend library platformgnome.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//kcalextended/.libs [DEVELOPER 00:00:00] Loading backend library synckcalextended.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//kde/.libs [DEVELOPER 00:00:00] Loading backend library platformkde.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//maemo/.libs [DEVELOPER 00:00:00] Loading backend library syncmaemocal.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//pbap/.libs [DEVELOPER 00:00:00] Loading backend library syncpbap.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//qtcontacts/.libs [DEVELOPER 00:00:00] Loading backend library syncqtcontacts.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//sqlite/.libs [DEVELOPER 00:00:00] Loading backend library syncsqlite.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//webdav/.libs [DEVELOPER 00:00:00] Loading backend library syncdav.so [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//xmlrpc/.libs [DEVELOPER 00:00:00] Loading backend library syncxmlrpc.so [INFO 00:00:00] addressbook: inactive [INFO 00:00:00] calendar: inactive [INFO 00:00:00] calendar1: inactive [INFO 00:00:00] memo: inactive [INFO 00:00:00] todo: inactive [DEBUG 00:00:00] checking sync password syncURL [DEBUG 00:00:00] checking sync password username [DEBUG 00:00:00] checking sync password password [DEBUG 00:00:00] checking sync password logdir [DEBUG 00:00:00] checking sync password loglevel [DEBUG 00:00:00] checking sync password notifyLevel [DEBUG 00:00:00] checking sync password printChanges [DEBUG 00:00:00] checking sync password dumpData [DEBUG 00:00:00] checking sync password maxlogdirs [DEBUG 00:00:00] checking sync password autoSync [DEBUG 00:00:00] checking sync password autoSyncInterval [DEBUG 00:00:00] checking sync password autoSyncDelay [DEBUG 00:00:00] checking sync password preventSlowSync [DEBUG 00:00:00] checking sync password useProxy [DEBUG 00:00:00] checking sync password proxyHost [DEBUG 00:00:00] checking sync password proxyUsername [DEBUG 00:00:00] checking sync password proxyPassword [DEBUG 00:00:00] checking sync password clientAuthType [DEBUG 00:00:00] checking sync password RetryDuration [DEBUG 00:00:00] checking sync password RetryInterval [DEBUG 00:00:00] checking sync password remoteIdentifier [DEBUG 00:00:00] checking sync password PeerIsClient [DEBUG 00:00:00] checking sync password SyncMLVersion [DEBUG 00:00:00] checking sync password PeerName [DEBUG 00:00:00] checking sync password deviceId [DEBUG 00:00:00] checking sync password remoteDeviceId [DEBUG 00:00:00] checking sync password enableWBXML [DEBUG 00:00:00] checking sync password enableRefreshSync [DEBUG 00:00:00] checking sync password maxMsgSize [DEBUG 00:00:00] checking sync password maxObjSize [DEBUG 00:00:00] checking sync password SSLServerCertificates [DEBUG 00:00:00] checking sync password SSLVerifyServer [DEBUG 00:00:00] checking sync password SSLVerifyHost [DEBUG 00:00:00] checking sync password WebURL [DEBUG 00:00:00] checking sync password IconURI [DEBUG 00:00:00] checking sync password ConsumerReady [DEBUG 00:00:00] checking sync password peerType [DEBUG 00:00:00] checking sync password HashCode [DEBUG 00:00:00] checking sync password ConfigDate [DEBUG 00:00:00] checking sync password lastNonce [DEBUG 00:00:00] checking sync password deviceData [DEBUG 00:00:00] checking sync password defaultPeer [DEBUG 00:00:00] checking sync password keyring [DEBUG 00:00:00] checking sync password webDAVCredentialsOkay [DEBUG 00:00:00] checking source cards1 password sync [DEBUG 00:00:00] checking source cards1 password uri [DEBUG 00:00:00] checking source cards1 password backend [DEBUG 00:00:00] checking source cards1 password syncFormat [DEBUG 00:00:00] checking source cards1 password forceSyncFormat [DEBUG 00:00:00] checking source cards1 password database [DEBUG 00:00:00] checking source cards1 password databaseFormat [DEBUG 00:00:00] checking source cards1 password databaseUser [DEBUG 00:00:00] checking source cards1 password databasePassword [DEBUG 00:00:00] checking source cards1 password adminData [DEBUG 00:00:00] checking source cards1 password synthesisID [DEBUG 00:00:00] sync is starting, catch signals [DEBUG 00:00:00] SuspendFlags: (re)activating, currently inactive [DEBUG 00:00:00] SuspendFlags: activating signal handler(s) with fds 7->6 [DEBUG 00:00:00] SuspendFlags: catch SIGINT [DEBUG 00:00:00] SuspendFlags: catch SIGTERM [DEBUG 00:00:00] ready to sync [DEBUG 00:00:00] using libneon neon 0.29.6: Library build, IPv6, Expat 2.0.1, zlib 1.2.5, GNU TLS 2.12.14. with SSL, ZLIB, IPV6, TS_SSL, I18N HTTP session to ${URL}:80 begins. sess: libproxy #0=direct:// [DEBUG 00:00:00] starting PROPFIND, credentials unverified, deadline in 300.0s ah_create, for WWW-Authenticate Running pre_send hooks Sending request headers: PROPFIND /muelli/cards/ HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: ${URL} Depth: 1 Content-Length: 141 Content-Type: application/xml Sending request-line and headers: Doing DNS lookup on ${URL}... req: Connecting to ip.ip.ip.ip:80 Sending request body: Body block (141 bytes): [<?xml version="1.0" encoding="utf-8"?> <propfind xmlns="DAV:"><prop> <getetag xmlns="DAV:"/> <resourcetype xmlns="DAV:"/> </prop></propfind> ] Request sent; retry is 0. [status-line] < HTTP/1.1 401 Authorization Required [hdr] Date: Sat, 17 Nov 2012 04:01:49 GMT Header Name: [date], Value: [Sat, 17 Nov 2012 04:01:49 GMT] [hdr] Server: Apache Header Name: [server], Value: [Apache] [hdr] WWW-Authenticate: Digest realm="calendar", nonce="1gOP8ajOBAA=1381417d1268db9f4ed8963b0e66cc58bf3f845e", algorithm=MD5, domain="calendar", qop="auth" Header Name: [www-authenticate], Value: [Digest realm="calendar", nonce="1gOP8ajOBAA=1381417d1268db9f4ed8963b0e66cc58bf3f845e", algorithm=MD5, domain="calendar", qop="auth"] [hdr] Content-Length: 480 Header Name: [content-length], Value: [480] [hdr] Keep-Alive: timeout=15, max=100 Header Name: [keep-alive], Value: [timeout=15, max=100] [hdr] Connection: Keep-Alive Header Name: [connection], Value: [Keep-Alive] [hdr] Content-Type: text/html; charset=iso-8859-1 Header Name: [content-type], Value: [text/html; charset=iso-8859-1] [hdr] End of headers. Running post_headers hooks Reading 480 bytes of response body. Got 480 bytes. Read block (480 bytes): [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>401 Authorization Required</title> </head><body> <h1>Authorization Required</h1> <p>This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.</p> <hr> <address>Apache Server at ${URL} Port 80</address> </body></html> ] Running post_send hooks ah_post_send (#0), code is 401 (want 401), WWW-Authenticate is Digest realm="calendar", nonce="1gOP8ajOBAA=1381417d1268db9f4ed8963b0e66cc58bf3f845e", algorithm=MD5, domain="calendar", qop="auth" auth: Got challenge (code 401). auth: Got 'Digest' challenge. auth: Trying Digest challenge... auth: Using domain /calendar from calendar [DEBUG 00:00:00] retry request with credentials auth: Got qop, using 2617-style. auth: H(A1) is [a372f9146dc16960158864aa6b0d93df] auth: Accepting digest challenge. auth: Accepted Digest challenge. Running pre_send hooks auth: Sending 'Digest' response. auth: '/muelli/cards/' is inside auth domain: 0. Sending request headers: PROPFIND /muelli/cards/ HTTP/1.1 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: ${URL} Depth: 1 Content-Length: 141 Content-Type: application/xml Sending request-line and headers: Sending request body: Body block (141 bytes): [<?xml version="1.0" encoding="utf-8"?> <propfind xmlns="DAV:"><prop> <getetag xmlns="DAV:"/> <resourcetype xmlns="DAV:"/> </prop></propfind> ] Request sent; retry is 1. [status-line] < HTTP/1.1 401 Authorization Required [hdr] Date: Sat, 17 Nov 2012 04:01:49 GMT Header Name: [date], Value: [Sat, 17 Nov 2012 04:01:49 GMT] [hdr] Server: Apache Header Name: [server], Value: [Apache] [hdr] WWW-Authenticate: Digest realm="calendar", nonce="P32P8ajOBAA=0d53434aa1d5d7b24efb5cfcbde6588602535984", algorithm=MD5, domain="calendar", qop="auth" Header Name: [www-authenticate], Value: [Digest realm="calendar", nonce="P32P8ajOBAA=0d53434aa1d5d7b24efb5cfcbde6588602535984", algorithm=MD5, domain="calendar", qop="auth"] [hdr] Content-Length: 480 Header Name: [content-length], Value: [480] [hdr] Keep-Alive: timeout=15, max=99 Header Name: [keep-alive], Value: [timeout=15, max=99] [hdr] Connection: Keep-Alive Header Name: [connection], Value: [Keep-Alive] [hdr] Content-Type: text/html; charset=iso-8859-1 Header Name: [content-type], Value: [text/html; charset=iso-8859-1] [hdr] End of headers. Running post_headers hooks Reading 480 bytes of response body. Got 480 bytes. Read block (480 bytes): [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>401 Authorization Required</title> </head><body> <h1>Authorization Required</h1> <p>This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.</p> <hr> <address>Apache Server at ${URL} Port 80</address> </body></html> ] Running post_send hooks ah_post_send (#1), code is 401 (want 401), WWW-Authenticate is Digest realm="calendar", nonce="P32P8ajOBAA=0d53434aa1d5d7b24efb5cfcbde6588602535984", algorithm=MD5, domain="calendar", qop="auth" auth: Got challenge (code 401). auth: Got 'Digest' challenge. auth: Trying Digest challenge... auth: Using domain /calendar from calendar auth: No challenges accepted. Request ends, status 401 class 4xx, error line: Could not authenticate to server: rejected Digest challenge [DEBUG 00:00:00] credential error, no success with them before => report it [DEBUG 00:00:00] PROPFIND: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: rejected Digest challenge, must not retry [DEBUG 00:00:00] credentials rejected Running destroy hooks. Request ends. [DEBUG 00:00:00] SuspendFlags: deactivating fds 7->6 [DEBUG 00:00:00] SuspendFlags: close m_receiverFD 6 [DEBUG 00:00:00] SuspendFlags: close m_senderFD 7 [DEBUG 00:00:00] SuspendFlags: done with deactivation [DEBUG 00:00:00] exception thrown at src/backends/webdav/NeonCXX.cpp:720 [ERROR 00:00:00] error code from SyncEvolution authorization failed (remote, status 401): PROPFIND: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: rejected Digest challenge Synchronization failed, see /home/muelli/.cache/syncevolution/target_+config@radicale-2012-11-17-05-01/syncevolution-log.html for details. Changes applied during synchronization: +---------------|-----------------------|-----------------------|-CON-+ | | LOCAL | REMOTE | FLI | | Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS | +---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | cards1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | start Sat Nov 17 05:01:49 2012, duration 0:00min | | authorization failed (remote, status 401) | +---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+ First ERROR encountered: error code from SyncEvolution authorization failed (remote, status 401): PROPFIND: Neon error code 3 = NE_AUTH, HTTP status 401: Could not authenticate to server: rejected Digest challenge [DEBUG 00:00:00] removing /home/muelli/.cache/syncevolution/target_+config@radicale-2012-11-17-02-38 sess: Destroying session. Just to be very precise: If the login worked, the server would return 403 due to its configuration. But since syncevolution doesn't seem to authenticate properly, the server doesn't authenticate it. $ wget --user=user1 --password=pw1 -O- ${URL} --2012-11-17 05:04:43-- ${URL}/ Resolving Connecting ... connected. HTTP request sent, awaiting response... 401 Authorization Required Reusing existing connection. HTTP request sent, awaiting response... 403 Forbidden 2012-11-17 05:04:43 ERROR 403: Forbidden. Interestingly, it loads stuff from the build directory: [DEVELOPER 00:00:00] Scanning backend libraries in /home/muelli/git/syncevolution/src/backends//xmlrpc/.libs although I installed it. Weird. $ type -a syncevolution syncevolution is /tmp/syncevolution/bin/syncevolution syncevolution is /home/muelli/git/syncevolution/src/syncevolution syncevolution is /usr/bin/syncevolution syncevolution is /bin/syncevolution -- You are receiving this mail because: You are on the CC list for the bug. You are the assignee for the bug.
_______________________________________________ Syncevolution-issues mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution-issues
