X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/0958909cd999be772c045aada5bc426dffb0a0b1..refs/pull/5725/head:/app/Access/Oidc/OidcUserinfoResponse.php diff --git a/app/Access/Oidc/OidcUserinfoResponse.php b/app/Access/Oidc/OidcUserinfoResponse.php index 0026d2f0a..33b8ec806 100644 --- a/app/Access/Oidc/OidcUserinfoResponse.php +++ b/app/Access/Oidc/OidcUserinfoResponse.php @@ -11,7 +11,9 @@ class OidcUserinfoResponse implements ProvidesClaims public function __construct(ResponseInterface $response, string $issuer, array $keys) { - $contentType = $response->getHeader('Content-Type')[0]; + $contentTypeHeaderValue = $response->getHeader('Content-Type')[0] ?? ''; + $contentType = strtolower(trim(explode(';', $contentTypeHeaderValue, 2)[0])); + if ($contentType === 'application/json') { $this->claims = json_decode($response->getBody()->getContents(), true); } @@ -25,10 +27,10 @@ class OidcUserinfoResponse implements ProvidesClaims /** * @throws OidcInvalidTokenException */ - public function validate(string $idTokenSub): bool + public function validate(string $idTokenSub, string $clientId): bool { if (!is_null($this->jwt)) { - $this->jwt->validateCommonTokenDetails(); + $this->jwt->validateCommonTokenDetails($clientId); } $sub = $this->getClaim('sub');