MDL-80835 enrol_lti: add partitioning support for OIDC state cookie

Adds the property that is required by Chrome to opt-in to its 3rd party
cookie partitioning solution, CHIPS. This specific change ensures the
'state' cookie, used in the OIDC handshake, has partitioning support.
This cookie can be partitioned unconditionally, since it's a cookie
controlled by the library and one we don't expect to be set without
partitioning elsewhere.
This commit is contained in:
Jake Dallimore 2024-02-15 12:17:29 +08:00
parent 18e26b5abe
commit 35e82b9fad
No known key found for this signature in database

View File

@ -16,6 +16,7 @@
namespace enrol_lti\local\ltiadvantage\lib;
use auth_lti\local\ltiadvantage\utility\cookie_helper;
use Packback\Lti1p3\Interfaces\ICookie;
/**
@ -55,6 +56,9 @@ class lti_cookie implements ICookie {
setcookie($name, $value, array_merge($cookieoptions, $samesiteoptions, $options));
// Necessary, since partitioned can't be set via setcookie yet.
cookie_helper::add_attributes_to_cookie_response_header($name, ['Partitioned']);
// Set a second fallback cookie in the event that "SameSite" is not supported.
setcookie('LEGACY_'.$name, $value, array_merge($cookieoptions, $options));
}