Use local GoogleCredential in the nomulus tool

The scenarios in which the credential is used are:

1) Calls to Nomulus GAE HTTP endpoints.
2) Calls to Google APIs within the tool.
3) Calls to GAE APIs within the tool.

From now on the tool should not depend on ADCs created from gcloud any more (expect for beam pipeline deployments which need some more investigation as the dependency on ADC is not apparent). Using the nomulus tool requires running "nomulus login" first, but only once.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=224165735
This commit is contained in:
jianglai 2018-12-05 09:20:26 -08:00
parent 5f9aad90fc
commit fdda03eb53
12 changed files with 143 additions and 165 deletions

View file

@ -14,13 +14,13 @@
package google.registry.tools;
import com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.util.Utils;
import com.google.api.services.appengine.v1.Appengine;
import dagger.Module;
import dagger.Provides;
import google.registry.config.CredentialModule.AppEngineAdminApiCredential;
import google.registry.config.RegistryConfig.Config;
import google.registry.tools.AuthModule.LocalCredential;
import javax.inject.Singleton;
/** Module providing the instance of {@link Appengine} to access App Engine Admin Api. */
@ -30,10 +30,9 @@ public abstract class AppEngineAdminApiModule {
@Provides
@Singleton
public static Appengine provideAppengine(
@AppEngineAdminApiCredential AppIdentityCredential appIdentityCredential,
@Config("projectId") String projectId) {
@LocalCredential GoogleCredential credential, @Config("projectId") String projectId) {
return new Appengine.Builder(
Utils.getDefaultTransport(), Utils.getDefaultJsonFactory(), appIdentityCredential)
Utils.getDefaultTransport(), Utils.getDefaultJsonFactory(), credential)
.setApplicationName(projectId)
.build();
}