views:

1033

answers:

3

I am trying to simulate a problem we have with a particular domain ID which has issues accessing a subversion repository. Towards this, I tried a svn checkout with the option --username *domain\problematic_ID* on another windows machine. But I am not able to reproduce the problem as the checkout still succeeds using my own ID. This led me to wonder if svn caches user authentication data in more than one place and if so where.

I have cleared the auth directory in the application data area, changed the options in teh config file to disable caching of user auth data - but to no avail. The system does not even prompt me for the new user name and password, but simply checks out with the old ID.(I know it is the old ID in use by looking through the SVN logs). I am obviously missing something here -- but what? :-(

Does anyone know?

Thanks in advance!

EDIT: The subversion client version I use is 1.4.6(r28521)

+1  A: 

It sounds like you are doing everything exactly as the client credential section of the Subversion book suggests. The only thing I can think of is that the server isn't asking for the username and password because is getting it from somewhere else.

Tim Kryger
This is a *very* old link.
RedGlyph
The server does not always prompt/challenge the client for information. Sometimes (based on the configuration ) the server accepts the "basic authentication" the one that was used to login to the client host for example. So --username does not ALWAYS produce a prompt unless configured to do so! I figured this out after much struggle and thought I'd record it here for reference. Thanks for the hint.
Critical Skill
A: 

On Unix, it's in $HOME/.subversion/auth. On Windows, I think it's: %APPDATA%\Subversion\auth.

Nikola Kotur
+2  A: 

Which version do you use?

Here is the documentation on credential caching, for the latest (1.6 as of writing).

On Windows, the Subversion client stores passwords in the %APPDATA%/Subversion/auth/ directory. On Windows 2000 and later, the standard Windows cryptography services are used to encrypt the password on disk. Because the encryption key is managed by Windows and is tied to the user's own login credentials, only the user can decrypt the cached password. (Note that if the user's Windows account password is reset by an administrator, all of the cached passwords become undecipherable. The Subversion client will behave as though they don't exist, prompting for passwords when required.)

Also, be aware that a few changes occurred in version 1.6 regarding password storage.

RedGlyph
thanks. I use 1.4.6 - am Editing the question accordingly.
Critical Skill
You can still access the documentation for this version (http://svnbook.red-bean.com/en/1.4/svn.serverconfig.netmodel.html#svn.serverconfig.netmodel.credcache) but the path remains the same. TortoiseSVN allows you to clear authentication data from the GUI if that's of any help. Here, if I remove the files mentioned above and in the other posts, I'm asked my credentials next time they are needed (as per access control policy file).
RedGlyph
Just out of curiosity, could you precise how you know the ID used to proceed to the checkout? You mention the SVN logs, which ones?
RedGlyph
@RedGlyph: I have turned on some custom logging for subversion actions to give me more meaningful reports. You can either do this in http.conf file (methinks) but in our setup we have a seperate conf file for the apache part of the subversion configuration. If you add a line thus - CustomLog logs/svn_log "%t %u %{SVN-ACTION}e" env=SVN-ACTION just after the <location> section in the conf file, you can get a nice tidy logging of some SVN actions. See here for details. (under operational logging)http://subversion.tigris.org/svn_1.3_releasenotes.html
Critical Skill