view mod_http_rest/mod_http_rest.lua @ 5406:b86d80e21c60

mod_http_oauth2: Validate consistency of response and grant types Ensure that these correlated fields make sense per RFC 7591 ยง 2.1, even though we currently only check the response type during authorization. This could probably all be deleted if (when!) we remove the implicit grant, since then these things don't make any sense anymore.
author Kim Alvefur <zash@zash.se>
date Tue, 02 May 2023 16:34:31 +0200
parents 79432b859d21
children
line wrap: on
line source

module:depends"http"

local jid_split = require "util.jid".split;
local jid_prep = require "util.jid".prep;
local stanza = require "util.stanza";
local test_password = require "core.usermanager".test_password;
local b64_decode = require "util.encodings".base64.decode;
local formdecode = require "net.http".formdecode;
local xml = require"util.xml";

local function handle_post(event, path, authed_user)
	local request = event.request;
	local headers = request.headers;
	local body_type = headers.content_type;
	if body_type == "text/xml" and request.body then
        local parsed, err = xml.parse(request.body);
        if parsed then
            module:log("debug", "Sending %s", parsed);
            module:send(parsed);
            return 201;
        end
	else
		return 415;
	end
	return 422;
end

module:provides("http", {
	default_path = "/rest";
	route = {
		["POST"] = handle_post;
		OPTIONS = function(e)
			local headers = e.response.headers;
			headers.allow = "POST";
			headers.accept = "test/xml";
			return 200;
		end;
	}
});