我正在使用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的目录列表。
任何人都可以向我指出我做错了什么?谢谢。
答案 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文档声称它具有区分大小写,也不会处理区分大小写。