我在 Apache 服务器上存储了一个 SVN 存储库。
身份验证是通过 SSPI 完成的,我正尝试将其转移到更基本的内容(拥有本地用户/密码列表)。
我的httpd配置文件:
LoadModule sspi_auth_module modules/mod_auth_sspi.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
...
<Location /svn_toto>
DAV svn
SVNParentPath D:\web_server\svn_repositories_test
AuthzSVNAccessFile D:\web_server\svn_repositories_test\svnaccessfile.txt
#Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion Repository toto"
AuthUserFile D:\web_server\svn_repositories_test\users.txt
SVNIndexXSLT "/svnindex.xsl"
</Location>
我的用户.txt:
[users]
super = super
jean = jean
我的svn访问文件.txt:
[groups]
admin = super
[/]
@admin = rw
[cloisonnement:/]
jean = rw
super = rw
[cloisonnement:/trunk]
jean = rw
super = rw
现在,从客户端机器上,我尝试:
svn ls https://servername/svn_toto/cloisonnement/trunk --username super --password super
但这次失败了并询问我密码:
Authentication realm: <https://servername:443> Subversion Repository toto
Username: super
Password for 'super': *****
Authentication realm: <https://servername:443> Subversion Repository toto
Username: super
Password for 'super': *****
svn: E215004: Unable to connect to a repository at URL 'https://servername/svn_toto/cloisonnement/trunk'
svn: E215004: No more credentials or we tried too many times.
Authentication failed
我究竟做错了什么?
答案1
主要问题:
AuthUserFile 用于基本 Apache 身份验证一定不是格式为的纯文本文件user = password
,但采用特殊格式,由 htpasswd 准备。
您当前的版本users.txt
仅适用于基于 svnserve 的存储库,svn://
协议不是 http(s)://。因此,Apache 无法找到用户super
(任何用户真的)并对其进行身份验证
小故障:
访问权限AuthzSVNAccessFile
从父节点继承到子节点,因此:如果你有
[/]
@admin = rw
你能不要为根节点下的单个存储库以及注明的存储库内的路径克隆此规则