> -----Original Message-----
> From: Johan Corveleyn [mailto:jcor...@gmail.com] 
> Sent: 17 April 2012 11:02
> To: Cooke, Mark
> Cc: users@subversion.apache.org
> Subject: Re: Need help troubleshooting user authentication (apache)
> 
> On Tue, Apr 17, 2012 at 11:34 AM, Cooke, Mark 
> <mark.co...@siemens.com> wrote:
> > Hi,
> >
> > I am resurrecting this old thread as the problem has not 
> gone away and I think I have new info but I am not sure how 
> best to proceed... More inline below...
> >
> >> -----Original Message-----
> >> From: Johan Corveleyn [mailto:jcor...@gmail.com]
> >> Sent: 10 March 2011 20:58
> >> To: Cooke, Mark
> >> Cc: Daniel Shahaf; users@subversion.apache.org
> >> Subject: Re: Need help troubleshooting user authentication (apache)
> >>
> >> On Thu, Mar 10, 2011 at 8:20 AM, Cooke, Mark
> >> <mark.co...@siemens.com> wrote:
> >> >> -----Original Message-----
> >> >> From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
> >> >> Sent: 09 March 2011 16:48
> >> >> To: Cooke, Mark
> >> >> Cc: users@subversion.apache.org
> >> >> Subject: Re: Need help troubleshooting user 
> authentication (apache)
> >> >>
> >> >> Cooke, Mark wrote on Wed, Mar 09, 2011 at 14:44:31 -0000:
> >> >> > [Wed Jan 12 10:06:38 2011] [error] [client ip-address]
> >> >> > user user_a:
> >> >> > authentication failure for "/svn/dept/project/trunk":
> >> >> > Password Mismatch
> >> >> >
> >> >> > I do not understand where the 'Password Mismatch' error is
> >> >> > coming from, why does that only happen when using subversion
> >> >> > and not the browser?  I have tried searching for "rejected
> >> >> > Basic challenge" (both svn.haxx.se and the wider net) but
> >> >> > I've not found anything that hes helped so far.
> >> >> ...
> >> >> > What can I do to try to work out what the problem is?  It
> >> >> > is only svn and (currently) for only this one user...  I'd
> >> >> > really appreciate any help at this point.
> >> >>
> >> >> * Have you tried creating a new OS user for that one user?
> >> >
> >> > Not yet.  Corporate IT consider it my problem and that option is
> >> > definite *last resort* material *sigh*
> >> >
> >> >> * Yes, may be a good idea to look up where "Password 
> Mismatch" is
> >> >>   generated.  (I haven't heard of it before, but I 
> don't claim to
> >> >>   have heard of all typical syslog messages.)
> >> >
> >> > I guess it means exactly what it says but I'll try looking in the
> >> > source once I've found it to confirm.  I did find one comment to
> >> > an article that said they had problems with 
> "AuthzLDAPAuthoritative"
> >> > set "On" so I might try turning that "Off" but I need to 
> check the
> >> > implications of that.
> >> >
> >> > Still no idea why this only applies via the svn client (either
> >> > command line or TortoiseSVN) and not when accessing the server
> >> > using https via IE8...
> >>
> >> As a quick drive-by suggestion, two things come to mind:
> >> - SVN might use cached credential, browser doesn't. Maybe just
> >>   (re)move the cached credentials on the client-machine (from
> >>   %APP_DATA%/Subversion/auth, or from the registry (see svnbook)),
> >>   and try again?
> >>
> >> - proxy: svn only goes through proxy if it is configured as such in
> >>   the servers file in the runtime-configuration area. Browser might
> >>   use different proxy settings.
> >
> > We tried all the ways we could think of to clear cached 
> credentials and it did not help.  The only solution we found 
> was to change the users password _and_ delete their roaming 
> profile (a bit drastic considering all the info stored in there).
> >
> > However, I have now had more than one user with a problem 
> and have found that the issue appears to be related to 
> specific characters in the passwords.  I am wondering if 
> there is a code page type issue here...
> >
> > Details: running on corporate Windows XP (SP3) and IE8, 
> using subversion 1.6.17 (both command line and equivalent 
> TortoiseSVN).  Server is Windows server 2008, apache latest 
> 2.2 with SSL...  All configured (as best I can tell) to 
> English _UK_ settings.
> >
> > All the passwords that have caused problems have used the 
> English currency symbol `£`.  The browser is being used to 
> "remember passwords" and correctly prompts for a new one 
> after the regularly enforced password change.
> >
> > Is there any way to log on the server what subversion is 
> receiving as the password?  I realise this is a dodgy move 
> but I do not know how to confirm my suspicions that the 
> browser is correctly passing the `£` sign but for some reason 
> both command-line and TortoiseSVN are passing something different...
> 
> I think the easiest way to proceed (without the risk of compromising
> real passwords) would be to set up a separate test-repository, served
> via plain http, so you can easily take wire captures. Then make some
> test users with test passwords for that repository, and test you
> theory (by checking what goes over the wire).
> 
> -- 
> Johan
> 
OK, I think I have confirmation of a possible bug...

When using a browser, I get the following for <shift>-1 through <shift>-0 on my 
UK keyboard (bounded by '[]'):

2012-04-17 16:03:09.734000 : svntest [!"£$%^&*()]

...but when I use the svn command line client I log instead:

2012-04-17 16:01:52.124000 : svntest [!"œ$%^&*()]

Note that the `£` is now different.  I think that this explains the `Password 
Mismatch` error?

How did I test this?  I used something I found with mod_wsgi that meant that I 
could log from my normal configuration as follows:

Apache httpd-ssl.conf excerpt (missing unrelated config stuff):

<Location />
    AuthBasicProvider wsgi ldap

    # subversion user credentials debugging...
    # checks for a specific user name and then logs the password...
    WSGIAuthUserScript D:/svn.dbg/auth.wsgi

    <snipped>
</Location>

...which allowed me to slip in a wsgi script to do some logging as follows:

{{{
LOG_PATH = r'd:\svn.dbg\wsgiauth.log'

def check_password(environ, user, password):

    if user == 'svntest':
        ofs = open(LOG_PATH, 'a')
        ofs.write('%s : %s [%s]\n' % (dt.now(), user, password))
        ofs.close()

        if password == 'secret':
            return True
        return False
    return None
}}}

...before passing other credentials through (unlogged!) to LDAP as normal.

What can I do next?  Is this an apache configuration issue or really something 
in subversion?  It only manifests itself when using the subversion client 
(either TortoiseSVN or command line).

~ mark c

Svn command line version info (using alagazam latest):

D:\TEMP>svn --version
svn, version 1.7.4 (r1295709)
   compiled Mar  8 2012, 18:47:27

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme

Reply via email to