luci-lua-runtime: fix legacy luci-mod-rpc authentication
authorJo-Philipp Wich <jo@mein.io>
Sat, 29 Apr 2023 22:19:35 +0000 (00:19 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 29 Apr 2023 22:27:47 +0000 (00:27 +0200)
The legacy RPC module authentication fixup was improperly ported into the
Lua dispatcher stub module, rendering legacy RPC authentication broken.

Additionally, the split of the former `sysauth` cookie into `sysauth_http`
and `sysauth_https` ones was also imposed upon the RPC module, without
leaving the option to use just `sysauth` in place, so allow this cookie
name again for the legacy RPC logins.

Fixes: #6333
Fixes: e1932592c3 ("luci-base: use different cookie names for HTTP and HTTPS")
Fixes: ded8ccf93e ("luci-base-ucode: add initial ucode based LuCI runtime")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-lua-runtime/luasrc/dispatcher.lua

index 93f7f8949bbbbcd6f8d8b0de379468f7b34e52a5..dfbb225f0e21616aeb059bb8db4208b6ddf00df0 100644 (file)
@@ -167,12 +167,12 @@ function process_lua_controller(path)
                                        login = true,
                                        methods = { "cookie:sysauth_https", "cookie:sysauth_http" }
                                }
-                       elseif subname == "rpc" and entry.module == "luci.controller.rpc" then
+                       elseif path == "rpc" and modname == "luci.controller.rpc" then
                                entry.auth = {
                                        login = false,
-                                       methods = { "query:auth", "cookie:sysauth_https", "cookie:sysauth_http" }
+                                       methods = { "query:auth", "cookie:sysauth_https", "cookie:sysauth_http", "cookie:sysauth" }
                                }
-                       elseif entry.module == "luci.controller.admin.uci" then
+                       elseif modname == "luci.controller.admin.uci" then
                                entry.auth = {
                                        login = false,
                                        methods = { "param:sid" }