diff --git a/README.md b/README.md index 0cf7b95b..93e3341e 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,10 @@ This package is released under the MIT License. See the bundled [LICENSE](https: ## Credits -This code is principally developed and maintained by [Alex Bilbie](https://twitter.com/alexbilbie). +This code is principally developed and maintained by [Andy Millington](https://twitter.com/Sephster), [Brian +Retterer](https://twitter.com/bretterer), and [Simon Hamp](https://twitter.com/simonhamp). + +Between 2012 and 2017 this library was developed and maintained by [Alex Bilbie](https://alexbilbie.com/). Special thanks to [all of these awesome contributors](https://github.com/thephpleague/oauth2-server/contributors). diff --git a/composer.json b/composer.json index d6740aa4..d8d11125 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ "defuse/php-encryption": "^2.1" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0", + "phpunit/phpunit": "^4.8.38 || ^5.7.21", "zendframework/zend-diactoros": "^1.0" }, "repositories": [ diff --git a/examples/composer.json b/examples/composer.json index 79ab47cd..ec7387cf 100644 --- a/examples/composer.json +++ b/examples/composer.json @@ -7,7 +7,8 @@ "lcobucci/jwt": "^3.1", "paragonie/random_compat": "^2.0", "psr/http-message": "^1.0", - "defuse/php-encryption": "^2.1" + "defuse/php-encryption": "^2.1", + "zendframework/zend-diactoros": "^1.0" }, "autoload": { "psr-4": { diff --git a/src/AuthorizationServer.php b/src/AuthorizationServer.php index 42313bff..40386653 100644 --- a/src/AuthorizationServer.php +++ b/src/AuthorizationServer.php @@ -3,6 +3,7 @@ * @author Alex Bilbie * @copyright Copyright (c) Alex Bilbie * @license http://mit-license.org/ + * * @link https://github.com/thephpleague/oauth2-server */ diff --git a/src/CryptTrait.php b/src/CryptTrait.php index 805969b0..125a757e 100644 --- a/src/CryptTrait.php +++ b/src/CryptTrait.php @@ -1,9 +1,11 @@ * @copyright Copyright (c) Alex Bilbie * @license http://mit-license.org/ + * * @link https://github.com/thephpleague/oauth2-server */ @@ -24,6 +26,7 @@ trait CryptTrait * @param string $unencryptedData * * @throws \LogicException + * * @return string */ protected function encrypt($unencryptedData) @@ -41,6 +44,7 @@ trait CryptTrait * @param string $encryptedData * * @throws \LogicException + * * @return string */ protected function decrypt($encryptedData) diff --git a/src/Grant/ImplicitGrant.php b/src/Grant/ImplicitGrant.php index 9f000eb0..870e930a 100644 --- a/src/Grant/ImplicitGrant.php +++ b/src/Grant/ImplicitGrant.php @@ -27,11 +27,18 @@ class ImplicitGrant extends AbstractAuthorizeGrant private $accessTokenTTL; /** - * @param \DateInterval $accessTokenTTL + * @var string */ - public function __construct(\DateInterval $accessTokenTTL) + private $queryDelimiter; + + /** + * @param \DateInterval $accessTokenTTL + * @param string $queryDelimiter + */ + public function __construct(\DateInterval $accessTokenTTL, $queryDelimiter = '#') { $this->accessTokenTTL = $accessTokenTTL; + $this->queryDelimiter = $queryDelimiter; } /** @@ -95,7 +102,7 @@ class ImplicitGrant extends AbstractAuthorizeGrant public function canRespondToAuthorizationRequest(ServerRequestInterface $request) { return ( - array_key_exists('response_type', $request->getQueryParams()) + isset($request->getQueryParams()['response_type']) && $request->getQueryParams()['response_type'] === 'token' && isset($request->getQueryParams()['client_id']) ); @@ -204,7 +211,7 @@ class ImplicitGrant extends AbstractAuthorizeGrant 'expires_in' => $accessToken->getExpiryDateTime()->getTimestamp() - (new \DateTime())->getTimestamp(), 'state' => $authorizationRequest->getState(), ], - '#' + $this->queryDelimiter ) ); diff --git a/src/ResponseTypes/AbstractResponseType.php b/src/ResponseTypes/AbstractResponseType.php index 0c256f17..d013bab0 100644 --- a/src/ResponseTypes/AbstractResponseType.php +++ b/src/ResponseTypes/AbstractResponseType.php @@ -60,5 +60,4 @@ abstract class AbstractResponseType implements ResponseTypeInterface { $this->privateKey = $key; } - } diff --git a/tests/AuthorizationServerTest.php b/tests/AuthorizationServerTest.php index 4fe21724..40458059 100644 --- a/tests/AuthorizationServerTest.php +++ b/tests/AuthorizationServerTest.php @@ -3,7 +3,6 @@ namespace LeagueTests; use League\OAuth2\Server\AuthorizationServer; -use League\OAuth2\Server\CryptKey; use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\Grant\AuthCodeGrant; use League\OAuth2\Server\Grant\ClientCredentialsGrant; @@ -21,11 +20,12 @@ use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; use LeagueTests\Stubs\UserEntity; use Psr\Http\Message\ResponseInterface; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequest; use Zend\Diactoros\ServerRequestFactory; -class AuthorizationServerTest extends \PHPUnit_Framework_TestCase +class AuthorizationServerTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/CryptKeyTest.php b/tests/CryptKeyTest.php index c7f7f4a0..f4fd0659 100644 --- a/tests/CryptKeyTest.php +++ b/tests/CryptKeyTest.php @@ -3,8 +3,9 @@ namespace LeagueTests\Utils; use League\OAuth2\Server\CryptKey; +use PHPUnit\Framework\TestCase; -class CryptKeyTest extends \PHPUnit_Framework_TestCase +class CryptKeyTest extends TestCase { /** * @expectedException \LogicException diff --git a/tests/CryptTraitTest.php b/tests/CryptTraitTest.php index 8c7d2642..26427e59 100644 --- a/tests/CryptTraitTest.php +++ b/tests/CryptTraitTest.php @@ -2,10 +2,10 @@ namespace LeagueTests\Utils; -use League\OAuth2\Server\CryptKey; use LeagueTests\Stubs\CryptTraitStub; +use PHPUnit\Framework\TestCase; -class CryptTraitTest extends \PHPUnit_Framework_TestCase +class CryptTraitTest extends TestCase { /** * @var \LeagueTests\Stubs\CryptTraitStub diff --git a/tests/Grant/AbstractGrantTest.php b/tests/Grant/AbstractGrantTest.php index 542c78dc..d0d9b3c8 100644 --- a/tests/Grant/AbstractGrantTest.php +++ b/tests/Grant/AbstractGrantTest.php @@ -3,7 +3,6 @@ namespace LeagueTests\Grant; use League\Event\Emitter; -use League\OAuth2\Server\CryptKey; use League\OAuth2\Server\Entities\AccessTokenEntityInterface; use League\OAuth2\Server\Entities\AuthCodeEntityInterface; use League\OAuth2\Server\Entities\RefreshTokenEntityInterface; @@ -19,9 +18,10 @@ use LeagueTests\Stubs\AuthCodeEntity; use LeagueTests\Stubs\ClientEntity; use LeagueTests\Stubs\RefreshTokenEntity; use LeagueTests\Stubs\ScopeEntity; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class AbstractGrantTest extends \PHPUnit_Framework_TestCase +class AbstractGrantTest extends TestCase { public function testGetSet() { diff --git a/tests/Grant/AuthCodeGrantTest.php b/tests/Grant/AuthCodeGrantTest.php index 4a1c6d4a..6b06fe37 100644 --- a/tests/Grant/AuthCodeGrantTest.php +++ b/tests/Grant/AuthCodeGrantTest.php @@ -2,7 +2,6 @@ namespace LeagueTests\Grant; -use League\OAuth2\Server\CryptKey; use League\OAuth2\Server\Entities\AccessTokenEntityInterface; use League\OAuth2\Server\Entities\RefreshTokenEntityInterface; use League\OAuth2\Server\Exception\OAuthServerException; @@ -23,9 +22,10 @@ use LeagueTests\Stubs\RefreshTokenEntity; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; use LeagueTests\Stubs\UserEntity; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class AuthCodeGrantTest extends \PHPUnit_Framework_TestCase +class AuthCodeGrantTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/Grant/ClientCredentialsGrantTest.php b/tests/Grant/ClientCredentialsGrantTest.php index 8559490d..cfcdfba5 100644 --- a/tests/Grant/ClientCredentialsGrantTest.php +++ b/tests/Grant/ClientCredentialsGrantTest.php @@ -11,9 +11,10 @@ use LeagueTests\Stubs\AccessTokenEntity; use LeagueTests\Stubs\ClientEntity; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class ClientCredentialsGrantTest extends \PHPUnit_Framework_TestCase +class ClientCredentialsGrantTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/Grant/ImplicitGrantTest.php b/tests/Grant/ImplicitGrantTest.php index 6e175ea6..db62d09c 100644 --- a/tests/Grant/ImplicitGrantTest.php +++ b/tests/Grant/ImplicitGrantTest.php @@ -18,9 +18,10 @@ use LeagueTests\Stubs\CryptTraitStub; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; use LeagueTests\Stubs\UserEntity; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class ImplicitGrantTest extends \PHPUnit_Framework_TestCase +class ImplicitGrantTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/Grant/PasswordGrantTest.php b/tests/Grant/PasswordGrantTest.php index 8c4337ba..469044af 100644 --- a/tests/Grant/PasswordGrantTest.php +++ b/tests/Grant/PasswordGrantTest.php @@ -16,9 +16,10 @@ use LeagueTests\Stubs\RefreshTokenEntity; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; use LeagueTests\Stubs\UserEntity; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class PasswordGrantTest extends \PHPUnit_Framework_TestCase +class PasswordGrantTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/Grant/RefreshTokenGrantTest.php b/tests/Grant/RefreshTokenGrantTest.php index eb6e18fb..d7b3a8fd 100644 --- a/tests/Grant/RefreshTokenGrantTest.php +++ b/tests/Grant/RefreshTokenGrantTest.php @@ -16,9 +16,10 @@ use LeagueTests\Stubs\CryptTraitStub; use LeagueTests\Stubs\RefreshTokenEntity; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequest; -class RefreshTokenGrantTest extends \PHPUnit_Framework_TestCase +class RefreshTokenGrantTest extends TestCase { /** * @var CryptTraitStub diff --git a/tests/Middleware/AuthorizationServerMiddlewareTest.php b/tests/Middleware/AuthorizationServerMiddlewareTest.php index c44681e1..99118736 100644 --- a/tests/Middleware/AuthorizationServerMiddlewareTest.php +++ b/tests/Middleware/AuthorizationServerMiddlewareTest.php @@ -13,10 +13,11 @@ use LeagueTests\Stubs\AccessTokenEntity; use LeagueTests\Stubs\ClientEntity; use LeagueTests\Stubs\ScopeEntity; use LeagueTests\Stubs\StubResponseType; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequestFactory; -class AuthorizationServerMiddlewareTest extends \PHPUnit_Framework_TestCase +class AuthorizationServerMiddlewareTest extends TestCase { const DEFAULT_SCOPE = 'basic'; diff --git a/tests/Middleware/ResourceServerMiddlewareTest.php b/tests/Middleware/ResourceServerMiddlewareTest.php index 549c8003..2269c45a 100644 --- a/tests/Middleware/ResourceServerMiddlewareTest.php +++ b/tests/Middleware/ResourceServerMiddlewareTest.php @@ -8,10 +8,11 @@ use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface; use League\OAuth2\Server\ResourceServer; use LeagueTests\Stubs\AccessTokenEntity; use LeagueTests\Stubs\ClientEntity; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequest; -class ResourceServerMiddlewareTest extends \PHPUnit_Framework_TestCase +class ResourceServerMiddlewareTest extends TestCase { public function testValidResponse() { diff --git a/tests/ResourceServerTest.php b/tests/ResourceServerTest.php index 8a3353cc..3120cad2 100644 --- a/tests/ResourceServerTest.php +++ b/tests/ResourceServerTest.php @@ -6,9 +6,10 @@ namespace LeagueTests; use League\OAuth2\Server\Exception\OAuthServerException; use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface; use League\OAuth2\Server\ResourceServer; +use PHPUnit\Framework\TestCase; use Zend\Diactoros\ServerRequestFactory; -class ResourceServerTest extends \PHPUnit_Framework_TestCase +class ResourceServerTest extends TestCase { public function testValidateAuthenticatedRequest() { diff --git a/tests/ResponseTypes/BearerResponseTypeTest.php b/tests/ResponseTypes/BearerResponseTypeTest.php index 7f710d92..daad734e 100644 --- a/tests/ResponseTypes/BearerResponseTypeTest.php +++ b/tests/ResponseTypes/BearerResponseTypeTest.php @@ -11,11 +11,12 @@ use LeagueTests\Stubs\AccessTokenEntity; use LeagueTests\Stubs\ClientEntity; use LeagueTests\Stubs\RefreshTokenEntity; use LeagueTests\Stubs\ScopeEntity; +use PHPUnit\Framework\TestCase; use Psr\Http\Message\ResponseInterface; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequest; -class BearerResponseTypeTest extends \PHPUnit_Framework_TestCase +class BearerResponseTypeTest extends TestCase { public function testGenerateHttpResponse() { diff --git a/tests/Stubs/CryptTraitStub.php b/tests/Stubs/CryptTraitStub.php index a481a849..3fe02199 100644 --- a/tests/Stubs/CryptTraitStub.php +++ b/tests/Stubs/CryptTraitStub.php @@ -2,7 +2,6 @@ namespace LeagueTests\Stubs; -use League\OAuth2\Server\CryptKey; use League\OAuth2\Server\CryptTrait; class CryptTraitStub