Подменены все ключевые сущности на наши

This commit is contained in:
ErickSkrauch 2016-11-29 23:15:56 +03:00
parent 5f07834f45
commit 4f259a9dc7
7 changed files with 55 additions and 14 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
namespace api\components\OAuth2\Entities; namespace api\components\OAuth2\Entities;
use League\OAuth2\Server\Entity\SessionEntity; use League\OAuth2\Server\Entity\SessionEntity as OriginalSessionEntity;
class AuthCodeEntity extends \League\OAuth2\Server\Entity\AuthCodeEntity { class AuthCodeEntity extends \League\OAuth2\Server\Entity\AuthCodeEntity {
@ -15,7 +15,7 @@ class AuthCodeEntity extends \League\OAuth2\Server\Entity\AuthCodeEntity {
* @inheritdoc * @inheritdoc
* @return static * @return static
*/ */
public function setSession(SessionEntity $session) { public function setSession(OriginalSessionEntity $session) {
parent::setSession($session); parent::setSession($session);
$this->sessionId = $session->getId(); $this->sessionId = $session->getId();

View File

@ -1,7 +1,7 @@
<?php <?php
namespace api\components\OAuth2\Entities; namespace api\components\OAuth2\Entities;
use League\OAuth2\Server\Entity\ClientEntity; use League\OAuth2\Server\Entity\ClientEntity as OriginalClientEntity;
use League\OAuth2\Server\Entity\EntityTrait; use League\OAuth2\Server\Entity\EntityTrait;
class SessionEntity extends \League\OAuth2\Server\Entity\SessionEntity { class SessionEntity extends \League\OAuth2\Server\Entity\SessionEntity {
@ -13,11 +13,7 @@ class SessionEntity extends \League\OAuth2\Server\Entity\SessionEntity {
return $this->clientId; return $this->clientId;
} }
/** public function associateClient(OriginalClientEntity $client) {
* @inheritdoc
* @return static
*/
public function associateClient(ClientEntity $client) {
parent::associateClient($client); parent::associateClient($client);
$this->clientId = $client->getId(); $this->clientId = $client->getId();

View File

@ -0,0 +1,20 @@
<?php
namespace api\components\OAuth2\Grants;
use api\components\OAuth2\Entities;
class AuthCodeGrant extends \League\OAuth2\Server\Grant\AuthCodeGrant {
protected function createAccessTokenEntity() {
return new Entities\AccessTokenEntity($this->server);
}
protected function createRefreshTokenEntity() {
return new Entities\RefreshTokenEntity($this->server);
}
protected function createSessionEntity() {
return new Entities\SessionEntity($this->server);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace api\components\OAuth2\Grants;
use api\components\OAuth2\Entities;
class RefreshTokenGrant extends \League\OAuth2\Server\Grant\RefreshTokenGrant {
public $refreshTokenRotate = false;
protected function createAccessTokenEntity() {
return new Entities\AccessTokenEntity($this->server);
}
protected function createRefreshTokenEntity() {
return new Entities\RefreshTokenEntity($this->server);
}
protected function createSessionEntity() {
return new Entities\SessionEntity($this->server);
}
}

View File

@ -1,7 +1,7 @@
<?php <?php
$params = array_merge( $params = array_merge(
require(__DIR__ . '/../../common/config/params.php'), require __DIR__ . '/../../common/config/params.php',
require(__DIR__ . '/params.php') require __DIR__ . '/params.php'
); );
return [ return [
@ -65,6 +65,10 @@ return [
'oauth' => [ 'oauth' => [
'class' => api\components\OAuth2\Component::class, 'class' => api\components\OAuth2\Component::class,
'grantTypes' => ['authorization_code'], 'grantTypes' => ['authorization_code'],
'grantMap' => [
'authorization_code' => api\components\OAuth2\Grants\AuthCodeGrant::class,
'refresh_token' => api\components\OAuth2\Grants\RefreshTokenGrant::class,
],
], ],
'errorHandler' => [ 'errorHandler' => [
'class' => api\components\ErrorHandler::class, 'class' => api\components\ErrorHandler::class,

View File

@ -8,7 +8,6 @@ use common\models\Account;
use common\models\OauthClient; use common\models\OauthClient;
use common\models\OauthScope; use common\models\OauthScope;
use League\OAuth2\Server\Exception\OAuthException; use League\OAuth2\Server\Exception\OAuthException;
use League\OAuth2\Server\Grant\RefreshTokenGrant;
use Yii; use Yii;
use yii\filters\AccessControl; use yii\filters\AccessControl;
use yii\helpers\ArrayHelper; use yii\helpers\ArrayHelper;
@ -195,8 +194,8 @@ class OauthController extends Controller {
return; return;
} }
$grant = new RefreshTokenGrant(); $grantClass = Yii::$app->oauth->grantMap['refresh_token'];
$grant->setRefreshTokenRotation(false); $grant = new $grantClass;
$this->getServer()->addGrantType($grant); $this->getServer()->addGrantType($grant);
} }

View File

@ -18,7 +18,7 @@
"yiisoft/yii2": "2.0.9", "yiisoft/yii2": "2.0.9",
"yiisoft/yii2-swiftmailer": "*", "yiisoft/yii2-swiftmailer": "*",
"ramsey/uuid": "^3.5.0", "ramsey/uuid": "^3.5.0",
"league/oauth2-server": "dev-improvements#546dbfe85ae7c049cf9266281d228afe8bdd3ef6", "league/oauth2-server": "dev-improvements#b9277ccd664dcb80a766b73674d21de686cb9dda",
"yiisoft/yii2-redis": "~2.0.0", "yiisoft/yii2-redis": "~2.0.0",
"guzzlehttp/guzzle": "^6.0.0", "guzzlehttp/guzzle": "^6.0.0",
"php-amqplib/php-amqplib": "^2.6.2", "php-amqplib/php-amqplib": "^2.6.2",