/** * 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); }