comparison mod_http_oauth2/mod_http_oauth2.lua @ 5221:22483cfce3ce

mod_http_oauth2: Reflect ALL attributes of the client registration Per RFC 7591: " Additionally, the authorization server MUST return all registered metadata about this client, including any fields provisioned by the authorization server itself. " The idea is that the server may replace/drop fields in the registration, so what gets reflected back to the client is the source of truth about the registration.
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Mar 2023 14:52:43 +0000
parents 25e824f64fd3
children 578a72982bb2
comparison
equal deleted inserted replaced
5220:d03448560acf 5221:22483cfce3ce
562 562
563 -- Do we want to keep everything? 563 -- Do we want to keep everything?
564 local client_id = jwt_sign(client_metadata); 564 local client_id = jwt_sign(client_metadata);
565 local client_secret = make_secret(client_id); 565 local client_secret = make_secret(client_id);
566 566
567 local client_desc = { 567 client_metadata.client_id = client_id;
568 client_id = client_id; 568 client_metadata.client_secret = client_secret;
569 client_secret = client_secret; 569 client_metadata.client_id_issued_at = os.time();
570 client_id_issued_at = os.time(); 570 client_metadata.client_secret_expires_at = 0;
571 client_secret_expires_at = 0; 571
572 }
573 if not registration_options.accept_expired then 572 if not registration_options.accept_expired then
574 client_desc.client_secret_expires_at = client_desc.client_id_issued_at + (registration_options.default_ttl or 3600); 573 client_metadata.client_secret_expires_at = client_metadata.client_id_issued_at + (registration_options.default_ttl or 3600);
575 end 574 end
576 575
577 return { 576 return {
578 status_code = 201; 577 status_code = 201;
579 headers = { content_type = "application/json" }; 578 headers = { content_type = "application/json" };
580 body = json.encode(client_desc); 579 body = json.encode(client_metadata);
581 }; 580 };
582 end 581 end
583 582
584 if not registration_key then 583 if not registration_key then
585 module:log("info", "No 'oauth2_registration_key', dynamic client registration disabled") 584 module:log("info", "No 'oauth2_registration_key', dynamic client registration disabled")