获取authz_svn工作Apache Mac os x服务器

时间:2013-02-28 20:47:23

标签: svn apache2 osx-server

我正在尝试在Mac OS 10.6.8服务器上实现SVN的基于路径的访问。如果我使用htpasswd跟踪帐户,一切正常。但我希望与Open Directory集成,以便团队成员可以轻松更改其密码。但是,mod_auth_apple似乎并没有将自己暴露为authn,因此authz_svn没有提取它可以使用它进行身份验证(我在apache日志中收到错误,说“没有配置Authn提供程序。”)。

我知道Open Directory可以通过ldap获得,但mod_authn_ldap没有随Mac OS X服务器上安装的Apache版本一起提供。如果authz_svn包含在股票发行中,我假设有一些方法可以让它工作(但我可能会给Apple太多信用)。有没有人在不使用自定义构建的Apache的情况下解决这个问题?

1 个答案:

答案 0 :(得分:0)

经过几天的讨论后,发现了如何做到这一点。我添加了authn_file模块,然后还添加了AuthBasicAuthoritative。这似乎仍然强制使用mod_auth_apple进行身份验证,但在未指定AuthUserFile时不会失败。它还将身份验证信息传递给authz_svn,以便它可以正确检查访问控制。我希望对apache更熟悉的人可以正确解释为什么会这样。

所以我的位置指令现在看起来像

<Location "/">
    Options All -Includes -ExecCGI -Indexes +MultiViews
    <IfModule mod_dav.c>
        DAV svn
        SVNPath /Users/path/to/repo
    </IfModule>
    AllowOverride None
    AuthName "Svn Repo"
    AuthType Basic
    AuthzSVNAccessFile /Users/path/to/access/file.txt
    AuthBasicAuthoritative Off
    Require valid-user
</Location>

令人讨厌的是,我必须将AuthBasicAuthoritative Off添加到我的服务器托管的任何其他站点。