diff --git a/src/AbstractServer.php b/src/AbstractServer.php deleted file mode 100644 index 28b3d23a..00000000 --- a/src/AbstractServer.php +++ /dev/null @@ -1,107 +0,0 @@ - - * @copyright Copyright (c) Alex Bilbie - * @license http://mit-license.org/ - * @link https://github.com/thephpleague/oauth2-server - */ - -namespace League\OAuth2\Server; - -use League\Container\Container; -use League\Container\ContainerAwareInterface; -use League\Container\ContainerAwareTrait; -use League\Event\EmitterAwareInterface; -use League\Event\EmitterTrait; -use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface; -use League\OAuth2\Server\Repositories\ClientRepositoryInterface; -use League\OAuth2\Server\Repositories\RepositoryInterface; -use League\OAuth2\Server\Repositories\ScopeRepositoryInterface; -use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface; -use League\OAuth2\Server\Repositories\UserRepositoryInterface; -use Symfony\Component\HttpFoundation\Request; - -/** - * OAuth 2.0 Resource Server - */ -abstract class AbstractServer implements ContainerAwareInterface, EmitterAwareInterface -{ - use EmitterTrait, ContainerAwareTrait; - - /** - * The request object - * - * @var \Symfony\Component\HttpFoundation\Request - */ - protected $request; - - /** - * Setup the server - */ - public function __construct() - { - $this->setContainer(new Container()); - $this->getContainer()->singleton('emitter', $this->getEmitter()); - $this->getContainer()->addServiceProvider('League\OAuth2\Server\ServiceProviders\ClientCredentialsGrantProvider'); - $this->getContainer()->addServiceProvider('League\OAuth2\Server\ServiceProviders\PasswordGrantProvider'); - } - - /** - * Sets the Request Object - * - * @param \Symfony\Component\HttpFoundation\Request The Request Object - * - * @return self - * @deprecated - */ - public function setRequest($request) - { - $this->request = $request; - - return $this; - } - - /** - * Gets the Request object. It will create one from the globals if one is not set. - * - * @return \Symfony\Component\HttpFoundation\Request - * @deprecated - */ - public function getRequest() - { - if ($this->request === null) { - $this->request = Request::createFromGlobals(); - } - - return $this->request; - } - - /** - * Add a repository to the server - * - * @param RepositoryInterface $repository - */ - public function addRepository(RepositoryInterface $repository) - { - switch ($repository) { - case ($repository instanceof AccessTokenRepositoryInterface): - $this->getContainer()->add('AccessTokenRepository', $repository); - break; - case ($repository instanceof ClientRepositoryInterface): - $this->getContainer()->add('ClientRepository', $repository); - break; - case ($repository instanceof ScopeRepositoryInterface): - $this->getContainer()->add('ScopeRepository', $repository); - break; - case ($repository instanceof UserRepositoryInterface): - $this->getContainer()->add('UserRepository', $repository); - break; - case ($repository instanceof AuthCodeRepositoryInterface): - $this->getContainer()->add('AuthCodeRepository', $repository); - break; - } - } -} diff --git a/src/AuthorizationServer.php b/src/AuthorizationServer.php deleted file mode 100644 index d75213e9..00000000 --- a/src/AuthorizationServer.php +++ /dev/null @@ -1,295 +0,0 @@ - - * @copyright Copyright (c) Alex Bilbie - * @license http://mit-license.org/ - * @link https://github.com/thephpleague/oauth2-server - */ - -namespace League\OAuth2\Server; - -use League\OAuth2\Server\Grant\GrantTypeInterface; -use League\OAuth2\Server\TokenType\Bearer; - -/** - * OAuth 2.0 authorization server class - */ -class AuthorizationServer extends AbstractServer -{ - /** - * The delimiter between scopes specified in the scope query string parameter - * The OAuth 2 specification states it should be a space but most use a comma - * - * @var string - */ - protected $scopeDelimiter = ' '; - - /** - * The TTL (time to live) of an access token in seconds (default: 3600) - * - * @var integer - */ - protected $accessTokenTTL = 3600; - - /** - * The registered grant response types - * - * @var array - */ - protected $responseTypes = []; - - /** - * The registered grant types - * - * @var array - */ - protected $grantTypes = []; - - /** - * Require the "scope" parameter to be in checkAuthoriseParams() - * - * @var boolean - */ - protected $requireScopeParam = false; - - /** - * Default scope(s) to be used if none is provided - * - * @var string|array - */ - protected $defaultScope; - - /** - * Require the "state" parameter to be in checkAuthoriseParams() - * - * @var boolean - */ - protected $requireStateParam = false; - - /** - * Create a new OAuth2 authorization server - * - * @return self - */ - public function __construct() - { - // Set Bearer as the default token type - $this->setTokenType(new Bearer()); - - parent::__construct(); - - return $this; - } - - /** - * Enable support for a grant - * - * @param GrantTypeInterface $grantType A grant class which conforms to Interface/GrantTypeInterface - * @param null|string $identifier An identifier for the grant (autodetected if not passed) - * - * @return self - */ - public function addGrantType(GrantTypeInterface $grantType, $identifier = null) - { - if (is_null($identifier)) { - $identifier = $grantType->getIdentifier(); - } - - // Inject server into grant - $grantType->setAuthorizationServer($this); - - $this->grantTypes[$identifier] = $grantType; - - if (!is_null($grantType->getResponseType())) { - $this->responseTypes[] = $grantType->getResponseType(); - } - - return $this; - } - - /** - * Check if a grant type has been enabled - * - * @param string $identifier The grant type identifier - * - * @return boolean Returns "true" if enabled, "false" if not - */ - public function hasGrantType($identifier) - { - return (array_key_exists($identifier, $this->grantTypes)); - } - - /** - * Returns response types - * - * @return array - */ - public function getResponseTypes() - { - return $this->responseTypes; - } - - /** - * Require the "scope" parameter in checkAuthoriseParams() - * - * @param boolean $require - * - * @return self - */ - public function requireScopeParam($require = true) - { - $this->requireScopeParam = $require; - - return $this; - } - - /** - * Is the scope parameter required? - * - * @return bool - */ - public function scopeParamRequired() - { - return $this->requireScopeParam; - } - - /** - * Default scope to be used if none is provided and requireScopeParam() is false - * - * @param string $default Name of the default scope - * - * @return self - */ - public function setDefaultScope($default = null) - { - $this->defaultScope = $default; - - return $this; - } - - /** - * Default scope to be used if none is provided and requireScopeParam is false - * - * @return string|null - */ - public function getDefaultScope() - { - return $this->defaultScope; - } - - /** - * Require the "state" parameter in checkAuthoriseParams() - * - * @return bool - */ - public function stateParamRequired() - { - return $this->requireStateParam; - } - - /** - * Require the "state" parameter in checkAuthoriseParams() - * - * @param boolean $require - * - * @return self - */ - public function requireStateParam($require = true) - { - $this->requireStateParam = $require; - - return $this; - } - - /** - * Get the scope delimiter - * - * @return string The scope delimiter (default: ",") - */ - public function getScopeDelimiter() - { - return $this->scopeDelimiter; - } - - /** - * Set the scope delimiter - * - * @param string $scopeDelimiter - * - * @return self - */ - public function setScopeDelimiter($scopeDelimiter = ' ') - { - $this->scopeDelimiter = $scopeDelimiter; - - return $this; - } - - /** - * Get the TTL for an access token - * - * @return int The TTL - */ - public function getAccessTokenTTL() - { - return $this->accessTokenTTL; - } - - /** - * Set the TTL for an access token - * - * @param int $accessTokenTTL The new TTL - * - * @return self - */ - public function setAccessTokenTTL($accessTokenTTL = 3600) - { - $this->accessTokenTTL = $accessTokenTTL; - - return $this; - } - - /** - * Issue an access token - * - * @return array Authorise request parameters - * - * @throws - */ - public function issueAccessToken() - { - $grantType = $this->getRequest()->request->get('grant_type'); - if (is_null($grantType)) { - throw new Exception\InvalidRequestException('grant_type'); - } - - // Ensure grant type is one that is recognised and is enabled - if (!in_array($grantType, array_keys($this->grantTypes))) { - throw new Exception\UnsupportedGrantTypeException($grantType); - } - - // Complete the flow - return $this->getGrantType($grantType)->completeFlow(); - } - - /** - * Return a grant type class - * - * @param string $grantType The grant type identifier - * - * @return Grant\GrantTypeInterface - * - * @throws - */ - public function getGrantType($grantType) - { - if (isset($this->grantTypes[$grantType])) { - return $this->grantTypes[$grantType]; - } - - throw new Exception\InvalidGrantException($grantType); - } -}