To allow public reading / checking, you need to uncomment the bit between the <LimitExcept> directive and comment out the separate Require valid-user above it.
The <LimitExcept GET PROPFIND OPTIONS REPORT> directive tells the server that everything inside this does not apply to any GET , PROPFIND , OPTIONS or REPORT requests in the repository that are used to check / read the repo, in other words, if you put this bit of code in its Apache configuration, it will only require a valid user for anything other than the methods mentioned (for example, it will be required for the correct user if the PUT request is made for commit)
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
In your case, it should look something like this (I just changed your published configuration a bit, believing that it is correct, except for forced registration (I do not have an LDAP server to check it). Note for replacing example.com in your AuthLDAPURL on the server of the real server ):
<Location /repos> DAV svn # Directory containing all repository for this path SVNParentPath /srv/svn/repositories # List repositories colleciton SVNListParentPath On # Enable WebDAV automatic versioning SVNAutoversioning On # Repository Display Name SVNReposName "RepositoryName" # Do basic password authentication in the clear AuthType Basic # The name of the protected area or "realm" AuthName "RepositoryName" # Make LDAP the authentication mechanism AuthBasicProvider ldap # Make LDAP authentication is final AuthzLDAPAuthoritative off # Active Directory requires an authenticating DN to access records #AuthLDAPBindDN "ou=people,o=example,dc=com" # The LDAP query URL AuthLDAPURL "ldap://example.com:389/DC=com,DC=example,ou=people?uid(objectClass=*)" NONE # Authorization file AuthzSVNAccessFile /subversion/apache2/auth/repos.acl # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> SSLRequireSSL Require valid-user </LimitExcept> </Location>
As long as you put Require valid-user inside LimitExcept , everything should work the way you want it. The rest of the authentication configuration can be placed anywhere between the Location directive.
source share