Domanda

Ho un server Subversion in esecuzione con apache. E 'autentica gli utenti che utilizzano LDAP nella apache configurazione e utilizza le autorizzazioni per l'accesso degli utenti SVN limite a certe repository. Questo funziona perfettamente.

Apache

DAV svn
SVNParentPath /srv/svn
SVNListParentPath Off
SVNPathAuthz Off
AuthType Basic
AuthName "Subversion Repository"
AuthBasicProvider ldap
AuthLDAPBindDN        # private stuff
AuthLDAPBindPassword  # private stuff
AuthLDAPURL           # private stuff
Require valid-user
AuthzSVNAccessFile /etc/apache2/dav_svn.authz

Subversion

[groups]
soft = me, and, all, other, developpers

Aggiunta l'accesso anonimo da una macchina

Ora, ho un servizio che voglio installare (Rietveld, per le revisioni del codice), che ha bisogno di avere un accesso anonimo al repository. Poiché si tratta di un servizio web, gli accessi sono sempre fatto dallo stesso server. Così ho aggiunto apache configurazione per consentire tutti gli accessi da questa macchina. Questo non ha funzionato fino a quando ho aggiungere una riga aggiuntiva nel file di autorizzazione per consentire l'accesso in lettura a tutti gli utenti.

Apache

<Limit GET PROPFIND OPTIONS REPORT>
  Order allow,deny
  Allow from # private IP address
  Satisfy Any
</Limit>

Subversion

[Software:/]
@soft = rw
* = r                    # <-- This is the added line

Per esempio, prima aggiungo l'autorizzazione da un IP specifico, tutti gli utenti sono stati autenticati, e quindi aveva un nome. Ora, alcuni accessi sono fatte senza un nome utente! Ho trovato il nome utente - nei file di log di Apache, ma la linea - = r non funziona, nemmeno anonymous = r. Mi piacerebbe non consentire l'accesso in lettura a tutti in autorizzazione SVN. Come posso fare questo?

È stato utile?

Soluzione

Prova a mettere questo nel file AuthZ:

[Software:/]
@soft = rw
$anonymous=r
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top