Je travaille actuellement avec Apache et SVN avec l’authentification ActiveDirectory. L’utilisateur utilise le client TortoiseSVN.
Je tiens à souligner que j’ai deux repos avec le même nom et un mappage différent, mais que je suis redirigé vers la même “URL d’utilisateur”, car les permissions sont les mêmes pour les deux mises en pension.
Par exemple ‘http: // mysrvr / svn / foo / bar / corge’ et ‘http: // mysrvr / svn / foo / corge’
ou ‘http: // mysrvr / svn / foo / bar / corge et’ ‘http: // mysrvr / svn / foo / grault / corge’
Ce 2 repo est répliqué avec 8 “repo pairs” et les 7 autres fonctionnent correctement.
Voici mon erreur:
Commit failed (les détails suivent):
access à ‘/ svn / myDir / MYREPO /! svn / act / 65bf494c-a66a-4f45-870e-d988f691a45d’ interdit
Fini!
Ce ne sont pas des permissions, car l’utilisateur foobar a un access rw et il a réussi à extraire le référentiel. Cette erreur se produit lors de la validation.
Des choses qui aideraient à s’orienter vers une solution précise:
Voici les journaux Apache:
Apache error.log
[jj mm 12:38:02 2011] [erreur] [client 10.xxx] Accès refusé: ‘foobar’ MKACTIVITY MYREPO:
[jj mm 12:39:40 2011] [erreur] [client 10.xxx] Accès refusé: ‘foobar’ MKACTIVITY MYREPO:
[jj mm 12:39:54 2011] [erreur] [client 10.xxx] Accès refusé: ‘foobar’ MKACTIVITY MYREPO:
Apache access.log
10.xxx – foobar [jj / mm / aaaa: 12: 38: 02 GMT] “OPTIONS / svn / myDir / MYREPO HTTP / 1.1” 200 198
10.xxx – foobar [jj / mm / aaaa: 12: 38: 02 GMT] “PROPFIND / svn / myDir / MYREPO HTTP / 1.1” 207 667
10.xxx – foobar [jj / mmm / aa: 12h38: 02 GMT] “MKACTIVITY / svn / myDir / MYREPO /! Svn / act / 65bf494c-a66a-4f45-870e-d988f691a45d HTTP / 1.1” 403 266
svn_activity.log
[jj / mmm / aa: 12: 34: 20 -0300] waldo commet r2
[jj / mmm / aa: 12: 39: 07 -0300] statut fred / src / trunk r1447
À partir de svn_activity.log, je peux déduire les captures d’Apache et rebondir l’access, étant donné qu’il n’ya pas d’access foobar au moment indiqué précédemment.
Donc, en espérant que les données que j’ai collectées sont utiles pour résoudre ce problème … des idées?
J’ai trouvé ça!
Ok, voici la réponse:
Mes utilisateurs récupèrent un repository dans le répertoire / svn / myDir / MYREPO
Apache sait qu’il doit traduire MYREPO dans un répertoire en minuscules. Lorsque vous extrayez ou effectuez une opération de lecture, cela fonctionne correctement.
Mais lorsque les utilisateurs ont essayé de faire l’opération de validation, Apache modifie en quelque sorte l’ordre des opérations à effectuer pour répondre à la demande des utilisateurs, accepte d’abord l’opération d’écriture et tente d’écrire, puis passe en minuscule.
Encore une fois, il essaie d’écrire dans / svn / myDir / MYREPO , le problème est que:
Donc … MYREPO n’existe pas! myrepo le fait. C’est pourquoi il jette cette erreur:
Mais pour écrire, commencez par travailler avec elle et ensuite prenez un moment pour comprendre ce qu’il fait. Et l’exception vient avant la compréhension pour qu’Apache n’y parvienne jamais.
C’est la chose la plus simple:
http: // YourServer / svn / myDir / MYREPO
à
http: // YourServer / svn / myDir / myrepo
Ma recommandation pour svn-administrateurs et les utilisateurs à partir de maintenant, c’est faire
TOUT LE FAIBLE … désolé, je me corrige:
tout en minuscule!
Ajoutez à la solution ci-dessus, avant Subversion 1.7, s’il vous plait, que Subversion a traité les noms et les chemins du référentiel sans tenir compte de la casse, en les convertissant en minuscules avant de les comparer au contenu de votre access. fichier. Il fait maintenant ces comparaisons avec sensibilité à la casse. Si vous avez effectué une mise à niveau vers Subversion 1.7 à partir d’une version antérieure, vous devez examiner vos fichiers d’access pour vérifier leur exactitude.
Source – http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.pathbasedauthz