59 lines
1.4 KiB
PHP
59 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
/*
|
||
|
* The MIT License (MIT)
|
||
|
*
|
||
|
* Copyright (c) 2014-2020 Spomky-Labs
|
||
|
*
|
||
|
* This software may be modified and distributed under the terms
|
||
|
* of the MIT license. See the LICENSE file for details.
|
||
|
*/
|
||
|
|
||
|
namespace Jose\Component\KeyManagement;
|
||
|
|
||
|
use Psr\Http\Client\ClientInterface;
|
||
|
use Psr\Http\Message\RequestFactoryInterface;
|
||
|
use RuntimeException;
|
||
|
|
||
|
abstract class UrlKeySetFactory
|
||
|
{
|
||
|
/**
|
||
|
* @var ClientInterface
|
||
|
*/
|
||
|
private $client;
|
||
|
|
||
|
/**
|
||
|
* @var RequestFactoryInterface
|
||
|
*/
|
||
|
private $requestFactory;
|
||
|
|
||
|
/**
|
||
|
* UrlKeySetFactory constructor.
|
||
|
*/
|
||
|
public function __construct(ClientInterface $client, RequestFactoryInterface $requestFactory)
|
||
|
{
|
||
|
$this->client = $client;
|
||
|
$this->requestFactory = $requestFactory;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @throws RuntimeException if the response content is invalid
|
||
|
*/
|
||
|
protected function getContent(string $url, array $header = []): string
|
||
|
{
|
||
|
$request = $this->requestFactory->createRequest('GET', $url);
|
||
|
foreach ($header as $k => $v) {
|
||
|
$request = $request->withHeader($k, $v);
|
||
|
}
|
||
|
$response = $this->client->sendRequest($request);
|
||
|
|
||
|
if ($response->getStatusCode() >= 400) {
|
||
|
throw new RuntimeException('Unable to get the key set.', $response->getStatusCode());
|
||
|
}
|
||
|
|
||
|
return $response->getBody()->getContents();
|
||
|
}
|
||
|
}
|