Mercurial > prosody-modules
changeset 5766:b8a2b3ebe792
mod_http_oauth2: Return validation output added in trunk rev 72d7830505f0
It's not fun at all to try to register a client and only get back
"failed schema validation", this should help with that.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 03 Dec 2023 23:44:18 +0100 |
parents | 78368d2865dd |
children | a967bb4972c5 |
files | mod_http_oauth2/mod_http_oauth2.lua |
diffstat | 1 files changed, 18 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_http_oauth2/mod_http_oauth2.lua Sun Dec 03 21:25:39 2023 +0100 +++ b/mod_http_oauth2/mod_http_oauth2.lua Sun Dec 03 23:44:18 2023 +0100 @@ -1344,8 +1344,24 @@ end function create_client(client_metadata) - if not schema.validate(registration_schema, client_metadata) then - return nil, oauth_error("invalid_request", "Failed schema validation."); + local valid, validation_errors = schema.validate(registration_schema, client_metadata); + if not valid then + return nil, errors.new({ + type = "modify"; + condition = "bad-request"; + code = 400; + text = "Failed schema validation."; + extra = { + oauth2_response = { + error = "invalid_request"; + error_description = "Client registration data failed schema validation."; -- TODO Generate from validation_errors? + -- JSON Schema Output Format + -- https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-01#name-basic + valid = false; + errors = validation_errors; + }; + }; + }); end local client_uri = url.parse(client_metadata.client_uri);