public function createAccessToken(ClientInterface $client, ResourceOwnerInterface $resource_owner, array $scope = [], RefreshTokenInterface $refresh_token = null)
 {
     if (null !== $this->event_dispatcher) {
         $this->event_dispatcher->dispatch(Events::OAUTH2_PRE_ACCESS_TOKEN_CREATION, new PreAccessTokenCreationEvent($client, $scope, $resource_owner, $refresh_token));
     }
     $access_token = parent::createAccessToken($client, $resource_owner, $scope, $refresh_token);
     if (null !== $this->event_dispatcher) {
         $this->event_dispatcher->dispatch(Events::OAUTH2_POST_ACCESS_TOKEN_CREATION, new PostAccessTokenCreationEvent($access_token));
     }
     return $access_token;
 }
 /**
  * JWTAccessTokenManager constructor.
  *
  * {@inheritdoc}
  *
  * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
  */
 public function __construct(JWTCreator $jwt_creator, JWTLoader $jwt_loader, $signature_algorithm, JWKSetInterface $signature_key_set, $key_encryption_algorithm, $content_encryption_algorithm, JWKSetInterface $key_encryption_key_set, $issuer, EventDispatcherInterface $event_dispatcher)
 {
     parent::__construct($jwt_creator, $jwt_loader, $signature_algorithm, $signature_key_set, $key_encryption_algorithm, $content_encryption_algorithm, $key_encryption_key_set, $issuer);
     $this->event_dispatcher = $event_dispatcher;
 }