0

我正在使用 WebSVN 2.3.3 和 Subversion 1.5.6 在我的 32 位 Win7 桌面上运行 Apache 服务器 (2.2.21)。

这是问题所在:

如果我要导航到http://myservername/websvn,将强制执行 LDAP 身份验证,并且只有我在配置文件中允许的用户才能访问它。但是,如果我要导航到http://myservername/WebSvnor/Websvn甚至/webSVN,您就会明白,LDAP 身份验证不会被强制执行,它们允许任何用户,即使是那些未在配置文件中指定的用户,进入相同的 websvn 页面。

那么,我该如何解决这个问题呢?

更新:这是我的 websvn.conf 文件。出于安全原因,我已将其更改为适合此处的帖子。通过在文件末尾附近httpd.conf插入 ' '在文件中调用此特定文件。Include C:/somehwere/websvn.conf

<Location /websvn/> 
    #Redirect any requests to this page to the listing.php
    FallbackResource listing.php

    AuthLDAPBindDN "acct@xxx.com"
    AuthLDAPBindPassword "password"

    #The LDAP query URL
    AuthLDAPURL "ldap://x.x.x.x.x.x:389/DC=x,DC=x,DC=x,DC=x,DC=x?sAMAccountName?sub?(objectClass=user)" NONE

    AuthType Basic
    AuthName "Websvn"
    AuthBasicProvider ldap
    AuthzLDAPAuthoritative off  

    AuthUserFile /dev/null          
    Require ldap-user user1

</Location>

2013 年 7 月 2 日更新:我被告知应该使用而不是,我已经这样做了。Apache文档详细介绍了“何时使用什么”部分之间的区别,尤其是在“什么时候使用”部分。因此,我修改了 websvn.conv 文件以反映这一点:

<Directory /websvn> 
        DirectoryIndex listing.php

        Options FollowSymLinks

        Order allow,deny
        Allow from all

        AuthLDAPBindDN "acct@xxx.com"
        AuthLDAPBindPassword "password"

        #The LDAP query URL
        AuthLDAPURL "ldap://x.x.x.x.x.x:389/DC=x,DC=x,DC=x,DC=x,DC=x?sAMAccountName?sub?(objectClass=user)" NONE

        AuthType Basic
        AuthName "Websvn"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off  

        Require ldap-user user1 
    </Directory>

但是,即使使用不正确的 URL,我仍然可以访问我的 websvn,例如./websVn,此外,身份验证不再启动。

此外,页面listing.php 不显示。而是显示 websvn 的目录列表。

谁能指出我做错了什么?谢谢你。

4

1 回答 1

0

我已经通过在我的 httpd.conf 文件中使用这行代码将所有传入的 URL 转换为小写来解决这个问题。

   RewriteEngine On
   RewriteMap  lc int:tolower
   RewriteCond %{REQUEST_URI} [A-Z]
   RewriteRule (.*) ${lc:$1} [R=301,L]

为了使 LDAP 身份验证也能正常工作,我必须使用 websvn 配置文件的 < Location > 版本。

但是,我仍然对为什么 < Directory > 不处理大小写敏感问题感到困惑,即使 Apache 文档声称它确实如此。

于 2013-03-12T07:22:33.187 回答