VisualSVN身份验证排除

时间:2019-02-13 13:55:36

标签: visualsvn-server

我已从具有Windows身份验证(基本)功能的Apache 2.2托管的Subversion存储库迁移到VisualSVN(带有Apache 2.4的v3.9.2)。 这是一个新设置,无需升级,导入存储库后,我可以签出,更新和提交。 另外,可以使用浏览器访问Web界面(要求输入名称和密码)。

现在,我想将pdf文件排除在身份验证之外,以便任何知道正确URL的人都可以使用浏览器查看它们。

在旧设置中,我添加了以下位置部分:

<LocationMatch ^.+\.[pP][dD][fF](\?[pr]=\d+)*$>
    AuthType None   
    Allow from all
    Satisfy Any   
    Require all granted
</LocationMatch>

删除Allow.../Satisfy...指令(因为不再受支持)使我可以启动服务器,但是在访问pdf文件时会给出500错误代码。

如果我只有Require all granted指令,它仍然会要求输入名称和密码。

经过研究,并与自动生成的httpd.conf进行了比较,我添加了一些选项并尝试了它们的不同组合,但是没有一个起作用:

<LocationMatch "^.+\.[pP][dD][fF]\/?(\?[pr]=\d+)?$">
  AuthType None
  AuthMerging Or
  SVNPathAuthz off
  AuthzVisualSVNAuthoritative off
  SVNOverrideAll on
  Require all granted
</LocationMatch>

如果我将浏览器导航到存储库中的文件夹并输入凭据,然后才导航到它可以工作的pdf文件。仅在未经事先身份验证的情况下打开pdf文件的链接时,才会出现服务器错误。 在服务器上,事件日志显示以下错误消息:

AH00027: No authentication done but request not allowed without authentication for /svn/Test/trunk/test.pdf. Authentication not configured?
[client 10.1.1.254]

随着apache服务器日志级别的提高,我通过pdf访问获得了以下信息:

AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
AH01626: authorization result of Require all granted: granted
AH01626: authorization result of <RequireAny>: granted
AH01626: authorization result of AuthMerging Any: granted

因此,似乎Apache授予了访问权限,但VisualSVN仍然需要身份验证。

有人做过类似的事情并找到了解决方案吗?

1 个答案:

答案 0 :(得分:0)

VisualSVN Server现在不支持匿名访问。必须对用户进行身份验证并授权才能查看存储库内容。而且,您不应修改服务器的httpd.conf或httpd-custom.conf文件以启用匿名访问-这可能会导致意外行为。

考虑调整另一个选项,而不是调整VisualSVN Server的配置。编写一个脚本,该脚本将从存储库中获取所需的PDF文件,并使它们通过不需要身份验证的其他HTTP服务器供用户使用。这可以是提交后的脚本,也可以是轮询存储库并在有更改的情况下下载文件的脚本。

相关问题