Spaces:
No application file
No application file
mautic
/
app
/bundles
/IntegrationsBundle
/Auth
/Provider
/Oauth2ThreeLegged
/AbstractClientFactory.php
declare(strict_types=1); | |
namespace Mautic\IntegrationsBundle\Auth\Provider\Oauth2ThreeLegged; | |
use GuzzleHttp\ClientInterface; | |
use Mautic\IntegrationsBundle\Auth\Provider\AuthConfigInterface; | |
use Mautic\IntegrationsBundle\Auth\Provider\AuthCredentialsInterface; | |
use Mautic\IntegrationsBundle\Auth\Provider\AuthProviderInterface; | |
use Mautic\IntegrationsBundle\Exception\PluginNotConfiguredException; | |
/** | |
* Factory for building HTTP clients that will sign the requests with Oauth2 headers. | |
* Based on Guzzle OAuth 2.0 Subscriber - kamermans/guzzle-oauth2-subscriber package. | |
* | |
* @see https://github.com/kamermans/guzzle-oauth2-subscriber | |
* | |
* @deprecated; use Mautic\IntegrationsBundle\Auth\Provider\Oauth2ThreeLegged\HttpFactory | |
*/ | |
abstract class AbstractClientFactory implements AuthProviderInterface | |
{ | |
public const NAME = 'oauth2_three_legged'; | |
public function getAuthType(): string | |
{ | |
return self::NAME; | |
} | |
/** | |
* @param AuthCredentialsInterface|CredentialsInterface $credentials | |
* | |
* @throws PluginNotConfiguredException | |
*/ | |
public function getClient(AuthCredentialsInterface $credentials, ?AuthConfigInterface $config = null): ClientInterface | |
{ | |
if (!$this->credentialsAreConfigured($credentials)) { | |
throw new PluginNotConfiguredException('Oauth2 credentials are not configured'); | |
} | |
return $this->buildClient($credentials); | |
} | |
abstract protected function buildClient(CredentialsInterface $credentials): ClientInterface; | |
abstract protected function credentialsAreConfigured(CredentialsInterface $credentials): bool; | |
} | |