Server IP : 172.67.157.199 / Your IP : 18.116.49.66 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/defender-security/vendor/web-auth/metadata-service/src/ |
Upload File : |
<?php declare(strict_types=1); /* * The MIT License (MIT) * * Copyright (c) 2014-2021 Spomky-Labs * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file for details. */ namespace Webauthn\MetadataService; use Assert\Assertion; use Base64Url\Base64Url; use Psr\Http\Client\ClientInterface; use Psr\Http\Message\RequestFactoryInterface; use function Safe\json_decode; use function Safe\sprintf; class DistantSingleMetadata extends SingleMetadata { /** * @var ClientInterface */ private $httpClient; /** * @var RequestFactoryInterface */ private $requestFactory; /** * @var array */ private $additionalHeaders; /** * @var string */ private $uri; /** * @var bool */ private $isBase64Encoded; public function __construct(string $uri, bool $isBase64Encoded, ClientInterface $httpClient, RequestFactoryInterface $requestFactory, array $additionalHeaders = []) { parent::__construct($uri, $isBase64Encoded); //Useless $this->uri = $uri; $this->isBase64Encoded = $isBase64Encoded; $this->httpClient = $httpClient; $this->requestFactory = $requestFactory; $this->additionalHeaders = $additionalHeaders; } public function getMetadataStatement(): MetadataStatement { $payload = $this->fetch(); $json = $this->isBase64Encoded ? Base64Url::decode($payload) : $payload; $data = json_decode($json, true); return MetadataStatement::createFromArray($data); } private function fetch(): string { $request = $this->requestFactory->createRequest('GET', $this->uri); foreach ($this->additionalHeaders as $k => $v) { $request = $request->withHeader($k, $v); } $response = $this->httpClient->sendRequest($request); Assertion::eq(200, $response->getStatusCode(), sprintf('Unable to contact the server. Response code is %d', $response->getStatusCode())); $content = $response->getBody()->getContents(); Assertion::notEmpty($content, 'Unable to contact the server. The response has no content'); return $content; } }