使用运行websvn的某些URL不强制执行LDAP身份验证

时间:2013-02-04 01:36:05

标签: svn directory apache2 ldap websvn

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

问题在于:

如果我要导航到http://myservername/websvn,将强制执行LDAP身份验证,并且只有我在配置文件中允许的用户才能访问它。 但是,如果我要导航到http://myservername/WebSvn/Websvn甚至/webSVN,您就会明白,LDAP auth不会被强制执行,并且它们允许任何用户,甚至是那些未在配置中指定的用户文件,进入相同的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 documentation详细说明了部分之间的区别,特别是在“什么时候使用什么”之下。所以,我修改了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>

但是,即使网址不正确,我仍然可以访问我的网站,例如/websVn,此外,身份验证不再适用。

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

任何人都可以向我指出我做错了什么?谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

为了使LDAP身份验证能够工作,我必须使用&lt;位置&gt; websvn配置文件的版本。

然而,我仍然对为什么&lt;目录&gt;即使Apache文档声称它具有区分大小写,也不会处理区分大小写。