Example #1
1
 /**
  * Determine and use credentials if user has set them.
  * @param $userEmail
  * @return bool used or not
  */
 protected function useAssertCredentials($userEmail = '')
 {
     $serviceJsonUrl = array_get($this->config, 'service.file', '');
     if (empty($serviceJsonUrl)) {
         return false;
     }
     $this->client->setAuthConfig($serviceJsonUrl);
     if ($userEmail) {
         $this->client->setSubject($userEmail);
     }
     return true;
 }
 public function testApplicationDefaultCredentialsWithSubject()
 {
     $sub = 'sub123';
     $client = new Google_Client();
     $client->setAuthConfig(__DIR__ . '/../config/application-default-credentials.json');
     $client->setSubject($sub);
     $http = new Client();
     $client->authorize($http);
     $listeners = $http->getEmitter()->listeners('before');
     $this->assertEquals(1, count($listeners));
     $this->assertEquals(2, count($listeners[0]));
     $this->assertInstanceOf('Google\\Auth\\AuthTokenFetcher', $listeners[0][0]);
     // access the protected $fetcher property
     $class = new ReflectionClass(get_class($listeners[0][0]));
     $property = $class->getProperty('fetcher');
     $property->setAccessible(true);
     $fetcher = $property->getValue($listeners[0][0]);
     $this->assertInstanceOf('Google\\Auth\\ServiceAccountCredentials', $fetcher);
     // access the protected $auth property
     $class = new ReflectionClass(get_class($fetcher));
     $property = $class->getProperty('auth');
     $property->setAccessible(true);
     $auth = $property->getValue($fetcher);
     $this->assertEquals($sub, $auth->getSub());
 }
 public function testApplicationDefaultCredentialsWithSubject()
 {
     $this->checkServiceAccountCredentials();
     $credentialsFile = getenv('GOOGLE_APPLICATION_CREDENTIALS');
     $sub = 'sub123';
     $client = new Google_Client();
     $client->setAuthConfig($credentialsFile);
     $client->setSubject($sub);
     $http = new Client();
     $client->authorize($http);
     $this->checkAuthHandler($http, 'AuthToken');
     $this->checkCredentials($http, 'Google\\Auth\\Credentials\\ServiceAccountCredentials', $sub);
 }