]> granicus.if.org Git - apache/commitdiff
Remember an authenticated user during internal redirects if the
authorAndré Malo <nd@apache.org>
Mon, 14 Jul 2003 17:24:38 +0000 (17:24 +0000)
committerAndré Malo <nd@apache.org>
Mon, 14 Jul 2003 17:24:38 +0000 (17:24 +0000)
redirection target is not access protected and pass it
to scripts using the REDIRECT_REMOTE_USER environment variable.

PR: 10678, 11602.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100604 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
server/util_script.c
support/suexec.c

diff --git a/CHANGES b/CHANGES
index cacff205cce2fbab3dab5dbf49f52f0b28a166ee..b87d545cbe2d69f7f01b2e731a65c5b3cc72ff9b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,11 @@ Changes with Apache 2.1.0-dev
 
   [Remove entries to the current 2.0 section below, when backported]
 
+  *) Remember an authenticated user during internal redirects if the
+     redirection target is not access protected and pass it
+     to scripts using the REDIRECT_REMOTE_USER environment variable.
+     PR 10678, 11602.  [André Malo]
+
   *) mod_rewrite: fix a problem in the proxy support of mod_rewrite.
      The broken code was inserting multiple "proxy:" fields in the
      rewritten URIs. [PR: 13946]
index b33873eb7ef4e47ce90bacaaf82723b79e8d5a6f..dd7d9ce416823d118131c4b2a332d88588a422f0 100644 (file)
@@ -286,6 +286,17 @@ AP_DECLARE(void) ap_add_common_vars(request_rec *r)
     if (r->user) {
        apr_table_addn(e, "REMOTE_USER", r->user);
     }
+    else if (r->prev) {
+        request_rec *back = r->prev;
+
+        while (back) {
+            if (back->user) {
+                apr_table_addn(e, "REDIRECT_REMOTE_USER", back->user);
+                break;
+            }
+            back = back->prev;
+        }
+    }
     if (r->ap_auth_type) {
        apr_table_addn(e, "AUTH_TYPE", r->ap_auth_type);
     }
index 198dd996dc5af9557f476ffa70e7153da2e2b283..cb048992825fe47a2f9f1a066ceabed1d31472eb 100644 (file)
@@ -160,6 +160,7 @@ char *safe_env_lst[] =
     "REMOTE_USER=",
     "REDIRECT_HANDLER=",
     "REDIRECT_QUERY_STRING=",
+    "REDIRECT_REMOTE_USER=",
     "REDIRECT_STATUS=",
     "REDIRECT_URL=",
     "REQUEST_METHOD=",