Mercurial > prosody-modules
view mod_http_rest/mod_http_rest.lua @ 5223:8b2a36847912
mod_http_oauth2: Support HTTP Basic auth on token endpoint
This is described in RFC 6749 section 2.3.1 and draft-ietf-oauth-v2-1-07 2.3.1
as the recommended way to transmit the client's credentials.
The older spec even calls it the "client password", but the new spec clarifies
that this is just another term for the client secret.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 07 Mar 2023 15:27:50 +0000 |
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; } });