Versionsnummer aus SVN-WebDAV-Fußzeile entfernen (mittels ServerSignature für SVN ab 1.6.6)

Freitag, 23. Oktober 2009, 17:36 Uhr von Christian

Seit der vor kurzem erschienenen Version 1.6.6 von Subversion gibt es nun eine einfachere Möglichkeit als bisher, die Versionskennung aus der Fußzeile zu entfernen. Ab Revision 40008 wird nämlich die ServerSignature-Direktive der Apache-Konfiguration ausgewertet, wie aus der Änderungsübersicht hervorgeht. In einem Kommentar an der geänderten Stelle im Quellcode steht lediglich „ServerSignature must be enabled“, im Commit-Kommentar immerhin „If ServerSignature is disabled in apache, do not print Subversion’s version information“. Da ServerSignature jedoch einen der Werte On, Off und EMail annehmen kann, ist nicht ganz klar, was genau mit „enabled“ bzw. „disabled“ gemeint ist und was demnach bei einem Wert von EMail passiert. Da das auch nicht unbedingt aus dem Quellcode ersichtlich ist, habe ich also selbst getestet.

Ergebnis: Die Versionskennung wird nur bei der Einstellung ServerSignature On ausgegeben. Bei den Einstellungen EMail bzw. Off wird die gesamte Fußzeile unterdrückt, anders als mithilfe der Eingangs erwähnten anderen Methode zur Filterung lediglich der Versionsnummer.

Ab Revision 40031 der entsprechenden Datei repos.c ist zusätzlich ein Kommentar vorhanden, der diesen Code-Abschnitt jedoch als eher temporäre Lösung („kludge“) einstuft. Daher sollte man sich nicht völlig darauf verlassen, dass sie immer und auch zukünftig wirkt wie erhofft.

Geschrieben in: Server-Konfiguration | Schlagwörter: , , , , , ,
Keine Kommentare »

Versionsnummer aus SVN-WebDAV-Fußzeile entfernen

Mittwoch, 14. Oktober 2009, 19:15 Uhr von Christian

Beim WebDAV-Zugriff auf ein Subversion-Repository via Browser wird immer eine Fußzeile generiert, welche die Versionsnummer des installierten SVN-Servers enthält, z. B. „Powered by Subversion version 1.5.5 (r34862).“. Meines Wissens kann diese momentan nicht direkt per Konfigurationsdirektive unterdrückt werden. Wer sich also daran gestört fühlt, kann sie durch Einsatz des Apache-Moduls mod_substitute vor Auslieferung der HTML-Seite mithilfe eines regulären Ausdrucks herausfiltern, sodass letztendlich nur noch „Powered by Subversion.“ ausgegeben wird.

Dafür muss zuerst das Modul mit

a2enmod substitute

aktiviert werden. Anschließend kann der folgende Schnipsel an entsprechender Stelle in die Apache-Konfiguration eingefügt werden.

<IfModule mod_substitute.c>
  AddOutputFilterByType SUBSTITUTE text/html
  Substitute "s|(Powered by <[^>]*>Subversion<[^>]*>) version .*\.|$1.|"
</IfModule>

Die Prüfung mit IfModule sorgt dafür, dass der Block nur aktiv wird, falls auch das Modul aktiv ist, da Apache sonst die Übernahme der Konfiguration mit der MeldungInvalid command ‚Substitute‘, perhaps misspelled or defined by a module not included in the server configuration“ verweigert.

Bei mir ist dieser „Hack“ nun seit fast drei Monaten im Einsatz, ohne dass sich Probleme oder Nebenwirkungen gezeigt haben.

Geschrieben in: Server-Konfiguration | Schlagwörter: , , , , , ,
Keine Kommentare »