Mercurial > prosody-modules
view mod_http_authentication/mod_http_authentication.lua @ 4049:78f1de5301fc
mod_adhoc_dataforms_demo: Fix duplicate field prevention
It's supposed to only include each type of form field once per form at
most but it didn't note which fields it had added already. No idea what
the probability was anyways, probably pretty low.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 23 Jun 2020 19:40:55 +0200 |
parents | 05725785e3a6 |
children |
line wrap: on
line source
module:set_global(); local b64_decode = require "util.encodings".base64.decode; local server = require "net.http.server"; local credentials = module:get_option_string("http_credentials", "username:secretpassword"); local unauthed_endpoints = module:get_option_set("unauthenticated_http_endpoints", { "/http-bind", "/http-bind/" })._items; module:wrap_object_event(server._events, false, function (handlers, event_name, event_data) local request = event_data.request; if event_name ~= "http-error" and request and not unauthed_endpoints[request.path] then local response = event_data.response; local headers = request.headers; if not headers.authorization then response.headers.www_authenticate = ("Basic realm=%q"):format(module.host.."/"..module.name); return 401; end local user_password = b64_decode(headers.authorization:match("%s(%S*)$")); if user_password ~= credentials then return 401; end end return handlers(event_name, event_data); end);