Где SVN-клиент хранит данные аутентификации пользователя? - PullRequest
63 голосов
/ 22 октября 2009

Я пытаюсь смоделировать возникшую у нас проблему с определенным идентификатором домена, у которого есть проблемы с доступом к хранилищу Subversion. Для этого я попытался svn checkout с опция --username domain\problematic_ID на другом компьютере с Windows. Но я не могу воспроизвести проблему, так как проверка по-прежнему удается с использованием моего собственного идентификатора. Это заставило меня задуматься о том, кэширует ли SVN данные аутентификации пользователей в более чем одном месте, и если да, то где.

Я очистил каталог auth в области данных приложения, изменил параметры в файле конфигурации, чтобы отключить кэширование данных auth пользователя - но безрезультатно. Система даже не запрашивает у меня новое имя пользователя и пароль, а просто проверяет старый идентификатор (я знаю, что это старый используемый идентификатор, просматривая журналы SVN). Я явно что-то здесь упускаю - но что? :-(

Кто-нибудь знает?

Используемая мной версия клиента Subversion - 1.4.6 (r28521)

Ответы [ 6 ]

114 голосов
/ 22 октября 2009
  • В Unix он находится в $HOME/.subversion/auth.

  • В Windows я думаю, что это: %APPDATA%\Subversion\auth.

15 голосов
/ 22 октября 2009

Звучит так, будто вы делаете все в точности так, как предлагает раздел учетных данных клиента в книге Subversion . Единственное, о чем я могу думать, это то, что сервер не запрашивает имя пользователя и пароль, потому что получает их откуда-то еще.

10 голосов
/ 22 октября 2009

Какую версию вы используете?

Вот документация по кэшированию учетных данных , для самых последних (1.6 на момент написания).

В Windows клиент Subversion хранит пароли в Каталог% APPDATA% / Subversion / auth /. В Windows 2000 и более поздних стандартные службы криптографии Windows используются для шифрования пароля на диск. Потому что ключ шифрования управляется Windows и привязан к учетные данные пользователя, только Пользователь может расшифровать кешированный пароль. (Обратите внимание, что если пользователь Windows пароль учетной записи сбрасывается администратор, все кешируется пароли становятся нешифруемыми. Клиент Subversion будет вести себя как хотя они не существуют, побуждая к пароли при необходимости.)

Также имейте в виду, что в версии 1.6 произошли некоторые изменения в отношении хранения пароля.

6 голосов
/ 14 марта 2013

Я знаю, что поднимаю очень старую тему, но после пары часов, борющихся с этой самой проблемой и не находящих решения где-либо еще, я думаю, что это хорошее место для ответа.

У нас есть несколько серверов сборки на базе WindowsXP, и мы нашли именно эту проблему: клиент командной строки svn не кэширует учетные данные аутентификации.

Мы наконец-то узнали, что используем svn-клиент Cygwin! не "родная" винда. Итак ... этот клиент хранит все учетные данные аутентификации в /home//.subversion/auth

Этот каталог / home в Cygwin, в нашей установке находится в c: \ cygwin \ home. И: проблема была в том, что пользователь Windows, на котором запущен svn, никогда не «входил» в Cygwin, и поэтому не было каталога / home / .

Простой "bash -ls" из командного терминала Windows создал каталог, и после первого доступа к нашему SVN-серверу с интерактивным запросом учетных данных доступа, к сожалению, они были кэшированы.

Так что, если вы используете svn-клиент Cygwin, обязательно создайте «домашний» каталог для локального пользователя Windows.

3 голосов
/ 14 сентября 2015

В Windows вы можете найти его в.

% USERPROFILE% \ AppData \ Roaming \ Subversion \ Auth \ svn.simple
(как показано ниже)
% APPDATA% \ Roaming \ Subversion \ Auth \ svn.simple

В этом каталоге может быть несколько файлов, в зависимости от того, в каких репозиториях вы участвуете. Вы можете принять это как один файл для каждого сервера SVN. Вы можете открыть файл в любом текстовом редакторе и убедиться, что вы собираетесь удалить правильный файл.

1 голос
/ 21 июня 2017

Читать SVNBook | Учетные данные клиента .

С современным SVN вы можете просто запустить svn auth, чтобы отобразить список кэшированных учетных данных. Не забудьте убедиться, что вы используете последнюю версию клиента SVN, потому что svn auth была введена в версии 1.9. В последней строке будет указан путь к хранилищу учетных данных, который по умолчанию равен %APPDATA%\Subversion\auth в Windows и ~/.subversion/auth/ в Unix-подобных системах.

PS C:\Users\MyUser> svn auth
------------------------------------------------------------------------
Credential kind: svn.simple
Authentication realm: <https://svn.example.local:443> VisualSVN Server
Password cache: wincrypt
Password: [not shown]
Username: user

Credentials cache in 'C:\Users\MyUser\AppData\Roaming\Subversion' contains 5 credentials
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...