Svn 未对运行WebVN的某些URL实施LDAP身份验证

Svn 未对运行WebVN的某些URL实施LDAP身份验证,svn,directory,apache2,ldap,websvn,Svn,Directory,Apache2,Ldap,Websvn,我正在32位Win7桌面上运行Apache服务器(2.2.21),带有WebVN 2.3.3和Subversion 1.5.6 问题是: 如果我要导航到http://myservername/websvn,LDAP验证将被强制执行,只有我在配置文件中允许的用户才能访问它。 但是,如果要导航到http://myservername/WebSvn或/Websvn或甚至/Websvn,您知道,LDAP身份验证不强制执行,它们允许任何用户(即使未在配置文件中指定的用户)进入相同的WebVn页面 那么,我

我正在32位Win7桌面上运行Apache服务器(2.2.21),带有WebVN 2.3.3和Subversion 1.5.6

问题是:

如果我要导航到
http://myservername/websvn
,LDAP验证将被强制执行,只有我在配置文件中允许的用户才能访问它。 但是,如果要导航到
http://myservername/WebSvn
/Websvn
或甚至
/Websvn
,您知道,LDAP身份验证不强制执行,它们允许任何用户(即使未在配置文件中指定的用户)进入相同的WebVn页面

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

更新: 这是我的websvn.conf文件。出于安全考虑,我已将其更改为适合此处的职位。 在
httpd.conf
文件中,通过在文件末尾附近插入“
Include C:/somehwere/webvn.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>

#将此页面的所有请求重定向到listing.php
FallbackResource listing.php
AuthLDAPBindDN“acct@xxx.com"
AuthLDAPBindPassword“密码”
#LDAP查询URL
AuthLDAPURL“ldap://x.x.x.x.x.x:389/DC=x,DC=x,DC=x,DC=x,DC=x?sAMAccountName?sub?(objectClass=user)“无
AuthType Basic
AuthName“webvn”
AuthBasicProvider ldap
authzldapoff
AuthUserFile/dev/null
需要ldap用户user1
更新日期:2013年7月2日: 我被告知应该使用,而不是,我已经这样做了。 Apache详细说明了两者之间的区别,特别是在“何时使用”部分下。因此,我修改了webvn.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>

directoryindexisting.php
选项如下符号链接
命令允许,拒绝
通融
AuthLDAPBindDN“acct@xxx.com"
AuthLDAPBindPassword“密码”
#LDAP查询URL
AuthLDAPURL“ldap://x.x.x.x.x.x:389/DC=x,DC=x,DC=x,DC=x,DC=x?sAMAccountName?sub?(objectClass=user)“无
AuthType Basic
AuthName“webvn”
AuthBasicProvider ldap
authzldapoff
需要ldap用户user1
但是,即使使用不正确的URL,我仍然可以访问我的WebVN,例如/WebVN,而且,身份验证不再生效

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


谁能告诉我我做错了什么?谢谢。

我在httpd.conf文件中用这行代码将所有传入URL转换为小写,从而解决了这个问题

   RewriteEngine On
   RewriteMap  lc int:tolower
   RewriteCond %{REQUEST_URI} [A-Z]
   RewriteRule (.*) ${lc:$1} [R=301,L]
为了使LDAP身份验证也能工作,我必须使用webvn配置文件的版本


然而,我仍然感到困惑,为什么不处理区分大小写的问题,尽管apachedocs声称它处理区分大小写的问题。

上下文是否应用于虚拟主机或目录。如果上下文应用于目录或虚拟主机,则ldap只会通知此目录。如果你能说出你是如何混淆ldap auth的,这将有助于更好地了解你的处境。我已经包括了我的webvn.conf文件我仍然面临这个问题…我可能不得不使用重写功能来处理这个问题…因此,我刚刚发现上面的内容将产生另一个问题。签出时不会有任何问题,但在提交文件时,会出现以下错误:“存储库永久移动到“…”;请重新定位”。如果您要通过web浏览器导航到您的回购协议,您将发现您无法转到包含大写字母的文件夹或打开文件。因此,我不得不把所有的东西都还原回去,并通过不同字母大小写的url访问WebVN。