From 61db0638bf29e59af6b49d9cabb6c0ec1fbabb0e Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Fri, 11 Oct 2024 16:20:44 +0000 Subject: [PATCH] mod_lua: Make r.ap_auth_type writable This completes the option of setting the remote user by the authentication mechanism which actually verified the user. One possible usecase is that a proxied (upstream) server performs the authentication, but the access log of HTTPd does not contain this information. The upstream server can pass this kind of information back to HTTPd and both servers will have consistent access logs. Submitted by: Michael Osipov PR: 62497 Github: closes #67 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921260 13f79535-47bb-0310-9956-ffa450edef68 --- changes-entries/pr62497.txt | 2 ++ docs/manual/mod/mod_lua.xml | 2 +- docs/manual/mod/mod_lua.xml.fr | 2 +- modules/lua/lua_request.c | 6 ++++++ 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 changes-entries/pr62497.txt diff --git a/changes-entries/pr62497.txt b/changes-entries/pr62497.txt new file mode 100644 index 00000000000..c4f555d066b --- /dev/null +++ b/changes-entries/pr62497.txt @@ -0,0 +1,2 @@ + *) mod_lua: Make r.ap_auth_type writable. PR 62497. + [Michael Osipov ] diff --git a/docs/manual/mod/mod_lua.xml b/docs/manual/mod/mod_lua.xml index 3a85d6ec8c9..38528f9465c 100644 --- a/docs/manual/mod/mod_lua.xml +++ b/docs/manual/mod/mod_lua.xml @@ -360,7 +360,7 @@ end ap_auth_type string - no + yes If an authentication check was made, this is set to the type of authentication (f.x. basic) diff --git a/docs/manual/mod/mod_lua.xml.fr b/docs/manual/mod/mod_lua.xml.fr index 3931ad5e50b..b61b43e7111 100644 --- a/docs/manual/mod/mod_lua.xml.fr +++ b/docs/manual/mod/mod_lua.xml.fr @@ -383,7 +383,7 @@ end ap_auth_type string - non + oui Ce champ contient le type d'authentification effectuée (par exemple basic) diff --git a/modules/lua/lua_request.c b/modules/lua/lua_request.c index 6787bbfaf7f..15605cd76c1 100644 --- a/modules/lua/lua_request.c +++ b/modules/lua/lua_request.c @@ -2551,6 +2551,12 @@ static int req_newindex(lua_State *L) request_rec *r = ap_lua_check_request_rec(L, 1); key = luaL_checkstring(L, 2); + if (0 == strcmp("ap_auth_type", key)) { + const char *value = luaL_checkstring(L, 3); + r->ap_auth_type = apr_pstrdup(r->pool, value); + return 0; + } + if (0 == strcmp("args", key)) { const char *value = luaL_checkstring(L, 3); r->args = apr_pstrdup(r->pool, value);