proc: expose HTTP_AUTH_USER and HTTP_AUTH_PASS
authorJo-Philipp Wich <jo@mein.io>
Sun, 2 Jul 2017 14:20:45 +0000 (16:20 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sun, 2 Jul 2017 14:20:45 +0000 (16:20 +0200)
Mimic other web servers like Nginx or Apache and expose the parsed basic
auth information as HTTP_AUTH_USER and HTTP_AUTH_PASS environment variables
to CGI processes.

This also restores login-from-basic-auth functionality in LuCI.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
proc.c

diff --git a/proc.c b/proc.c
index a8a7142664a0d9ba0e6cb653654a613859e56b1f..e360897467ef94f56035c463fffe5fa232560e02 100644 (file)
--- a/proc.c
+++ b/proc.c
@@ -34,7 +34,9 @@
        __header(user_agent, user-agent) \
        __header(content_type, content-type) \
        __header(content_length, content-length) \
-       __header(x_http_method_override, x-http-method-override)
+       __header(x_http_method_override, x-http-method-override) \
+       __header(http_auth_user, http-auth-user) \
+       __header(http_auth_pass, http-auth-pass)
 
 #undef __header
 #define __header __enum_header
@@ -64,6 +66,8 @@ static const struct {
        { "HTTP_REFERER", HDR_referer },
        { "HTTP_USER_AGENT", HDR_user_agent },
        { "HTTP_X_HTTP_METHOD_OVERRIDE", HDR_x_http_method_override },
+       { "HTTP_AUTH_USER", HDR_http_auth_user },
+       { "HTTP_AUTH_PASS", HDR_http_auth_pass },
        { "CONTENT_TYPE", HDR_content_type },
        { "CONTENT_LENGTH", HDR_content_length },
 };