Project

General

Profile

Redmine SVN Issues

Added by James Sweet about 13 years ago

Hi, I have setup a nginx front end with passenger to host redmine on my server and have a reverse proxied Apache running to serve my SVN content. I am trying to get it so that the authentications for the SVN projects match the redmine authentications.

If I setup Apache to use the Perl module and try to connect I can always checkout a project, even if its private, and I cant commit, giving the error "Can't open file '/srv/rcs/svn/error/format'".

As that didn't seem to work and I couldn't find any solutions to solve that I tried setting up Apache to do authentication with redmine users via LDAP, with that setup i can log into redmine itself with a user but when i try and checkout any project it says that it is forbidden and the error log contains "client denied by server configuration".

I am running out of ideas on how to fix this, does anyone have any?


Replies (4)

RE: Redmine SVN Issues - Added by Felix Schäfer about 13 years ago

James Sweet wrote:

If I setup Apache to use the Perl module and try to connect I can always checkout a project, even if its private,

What does your config look like?

and I cant commit, giving the error "Can't open file '/srv/rcs/svn/error/format'".

That probably means the user apache runs as doesn't have write (or even read) permission to that file.

RE: Redmine SVN Issues - Added by James Sweet about 13 years ago

My apache config is as follows:

<VirtualHost *:9001>
        RPAFenable On
        RPAFproxy_ips 127.0.0.1
        RPAFsethostname On
        RPAFheader X-Forwarded-For

        ServerName svn.***********.com
        ServerAlias svn.***********.com
        DocumentRoot /srv/rcs/svn/apache_svn

        ErrorLog /srv/rcs/svn/log/error.log
        TransferLog /srv/rcs/svn/log/access.log

        PerlLoadModule Apache::Redmine
        PerlLoadModule Authen::Simple::LDAP

        <Location />
                DAV svn
                SVNParentPath "/srv/rcs/svn" 

                #Order deny,allow
                #Deny from all
                #Satisfy any

                AuthType Basic
                AuthName "SVN Repository" 
                Require valid-user

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

               # <Limit GET PROPFIND OPTIONS REPORT>
               #    Require valid-user
               #    Allow from 127.0.0.1
               #    Satisfy any
               # </Limit>
               # <LimitExcept GET PROPFIND OPTIONS REPORT>
               #         Require valid-user
               # </LimitExcept>

                RedmineDSN "DBI:mysql:database=redmine;host=localhost" 
                RedmineDbUser "redmine" 
                RedmineDbPass "*******" 
        </Location>
</VirtualHost>

I don't understand how that error comes about as the repository I am trying to access is /srv/rcs/svn/test and it works if I don't have the redmine authentication.

RE: Redmine SVN Issues - Added by Felix Schäfer about 13 years ago

Ah, the error above is from the client, not the server? It's strange anyway that you get an error for /srv/rcs/svn/error when trying to access /srv/rcs/svn/test.

Anyway, as you seem to be proxying stuff, a short word on how the perl module tries to infer the project the repository you are trying to access belongs to: the perl module gets the path of the URI, gets the Location from the apache config, removes it from the front of the path part, and the next path/directory part is matched against the project identifiers in your redmine installation. Hence in your case, if you want to access a repository "test", its URI has to be "http(s)://someho.st/test" exactly, and the user must have the correct permissions in the project with the identifier "test".

RE: Redmine SVN Issues - Added by James Sweet about 13 years ago

Hi, The error itself is actually from the server logs but for some reason as soon as I activate the redmine stuff it seems to test something and return error as the repository rather than the specified one.

I am using the exact URI when trying to checkout on another computer but it does not ask about permission, it just bails saying that it is forbidden.

Do you know where in the perl module the code might change the repository path as that seems to be where something is going wrong.

    (1-4/4)