Ergebnis 1 bis 1 von 1

Thema: Apache: CGI Variable bei Authentifizierung umschreiben

  1. #1

    Apache: CGI Variable bei Authentifizierung umschreiben

    Ich möchte bei der Authentifizierung an einem Apache Webserver (z.B. Basic Auth oder per Zertifikat) die erzeugte REMOTE_USER CGI Variable in eine andere Variable umschreiben. Der Grund dafür ist, dass ein anderer Webvserver, an den der Request weitergeleitet wird, die Variable mit einem neuen Wert überschreibt und ich in der darunterliegenden Webapplikation nicht mehr auf den originalen Wert zugreifen kann.

    Hier meine Konfiguration in der httpd.conf:

    RewriteEngine On
    RewriteRule .* - [E=MY_VAR{REMOTE_USER}]


    Mit anderen CGI Variablen funktioniert es, mit REMOTE_USER allerdings nicht. Ich vermute, dass die Regel noch vor der eigentlichen Authentifizierung stattfindet und somit noch keine REMOTE_USER Variable existiert.
    Hat jemand eine Idee, wie ich nach der Authentifizierung an diese Variable komme, um sie in eine andere zu schreiben?





    Edit
    Problem gelöst.
    Mittels folgendem Präfix kann auf den Wert später verarbeiteter Variablen zugegriffen werden:

    RewriteRule .* - [E=MY_VAR{LA-U:REMOTE_USER}]


    Referenz: http://planconnect.nsw.gov.au/manual...d_rewrite.html
    Zitat Zitat
    There is the special format %{LA-U:variable} for look-aheads which perform an internal (URL-based) sub-request to determine the final value of variable. Use this when you want to use a variable for rewriting which is actually set later in an API phase and thus is not available at the current stage. For instance when you want to rewrite according to the REMOTE_USER variable from within the per-server context (httpd.conf file) you have to use %{LA-U:REMOTE_USER} because this variable is set by the authorization phases which come after the URL translation phase where mod_rewrite operates. On the other hand, because mod_rewrite implements its per-directory context (.htaccess file) via the Fixup phase of the API and because the authorization phases come before this phase, you just can use %{REMOTE_USER} there.

    Geändert von Gekiganger (20.05.2008 um 09:08 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •