Svn – Subversion authentication issues (Redmine integration)

apache-2.2redminesvn

I have a strange authentication issue related to Subversion (Apache acting as server) integrated with Redmine.
I tried anything I can think of but nothing works (I can't find the exact cause of this issue).

The configuration is the following:

    <Location />
        DAV svn
        LimitXMLRequestBody 0
        SVNPathAuthz off
        SVNParentPath "/srv/svn"
        SVNListParentPath off

        AuthType Basic
        AuthName "Repository"

        PerlAccessHandler Apache::Authn::Redmine::access_handler
        PerlAuthenHandler Apache::Authn::Redmine::authen_handler

        RedmineDSN "DBI:mysql:database=redmine;host=repository.host.tld"
        RedmineDbUser "redmine_user"
        RedmineDbPass "redmine_pass"

        Require valid-user

        Order allow,deny
        Allow from 192.168.3.0/24 x.x.x.x

        Satisfy all
    </Location>

If I try accessing the repository (for read/write) from the intranet (192.168.3.0/24) every thing works properly as expected, but when I try the same thing from an external address (x.x.x.x) I'm getting the following error:

Updating '.':

svn: E175002: Unable to connect to a repository at URL 'http://repository.host.tld/repo'
svn: E175002: Unexpected HTTP status 500 'Internal Server Error' on '/repo'
svn: E175002: Additional errors:
svn: E175002: OPTIONS request on '/repo' failed: 500 Internal Server Error

Apache reports the following in the error logs:

AuthUserFile not specified in the configuration

Like I said I tried anything suggested on the web, nothing works except setting Satisfy any.
Setting Satisfy to any is a very bad idea for me because disables authentication and authorization in certain cases (http://httpd.apache.org/docs/2.2/mod/core.html#satisfy).

Redmine version is: 2.5.1 (2014-03-29) (stable)
Subversion version is: 1.7.0
Apache version is: Apache/2.2.22

Any suggestions will be greatly appreciated. Thank you!

Best Answer

You are missing the AuthUserFile /dev/null parameter in your Location configuration.