mirror of
https://github.com/google/nomulus.git
synced 2025-05-15 17:07:15 +02:00
Add an option to perform login on remote machines
If the user runs "nomulus -e [ENV] login --remote", an URL will be provided, the user then can visit the URL on any machine (not necessary where the command is run) and copy&paste back the authorization code to complete authorization. This makes it easy to login on machines where local browsers are not easily accessible. Also upgraded nebula lint version to 10.3.5. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=225198700
This commit is contained in:
parent
4146e69d60
commit
377736e987
6 changed files with 39 additions and 16 deletions
|
@ -10,7 +10,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'nebula.lint' version '10.3.1'
|
id 'nebula.lint' version '10.3.5'
|
||||||
// Config helper for annotation processors such as AutoValue and Dagger.
|
// Config helper for annotation processors such as AutoValue and Dagger.
|
||||||
// Ensures that source code is generated at an appropriate location.
|
// Ensures that source code is generated at an appropriate location.
|
||||||
id 'net.ltgt.apt' version '0.19' apply false
|
id 'net.ltgt.apt' version '0.19' apply false
|
||||||
|
|
|
@ -84,7 +84,7 @@ dependencies {
|
||||||
maybeRuntime 'com.google.api-client:google-api-client-jackson2:1.20.0'
|
maybeRuntime 'com.google.api-client:google-api-client-jackson2:1.20.0'
|
||||||
compile 'com.google.monitoring-client:metrics:1.0.4'
|
compile 'com.google.monitoring-client:metrics:1.0.4'
|
||||||
compile 'com.google.monitoring-client:stackdriver:1.0.4'
|
compile 'com.google.monitoring-client:stackdriver:1.0.4'
|
||||||
maybeRuntime 'com.google.api-client:google-api-client-java6:1.20.0'
|
compile 'com.google.api-client:google-api-client-java6:1.27.0'
|
||||||
maybeRuntime 'com.google.api-client:google-api-client-servlet:1.22.0'
|
maybeRuntime 'com.google.api-client:google-api-client-servlet:1.22.0'
|
||||||
compile 'com.google.apis:google-api-services-admin-directory:directory_v1-rev72-1.22.0'
|
compile 'com.google.apis:google-api-services-admin-directory:directory_v1-rev72-1.22.0'
|
||||||
compile 'com.google.apis:google-api-services-appengine:v1-rev85-1.25.0'
|
compile 'com.google.apis:google-api-services-appengine:v1-rev85-1.25.0'
|
||||||
|
@ -136,7 +136,7 @@ dependencies {
|
||||||
compile 'com.google.http-client:google-http-client-jackson2:1.25.0'
|
compile 'com.google.http-client:google-http-client-jackson2:1.25.0'
|
||||||
compile 'com.google.oauth-client:google-oauth-client:1.25.0'
|
compile 'com.google.oauth-client:google-oauth-client:1.25.0'
|
||||||
maybeRuntime 'com.google.oauth-client:google-oauth-client-appengine:1.22.0'
|
maybeRuntime 'com.google.oauth-client:google-oauth-client-appengine:1.22.0'
|
||||||
compile 'com.google.oauth-client:google-oauth-client-java6:1.22.0'
|
compile 'com.google.oauth-client:google-oauth-client-java6:1.27.0'
|
||||||
compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0'
|
compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0'
|
||||||
maybeRuntime 'com.google.oauth-client:google-oauth-client-servlet:1.22.0'
|
maybeRuntime 'com.google.oauth-client:google-oauth-client-servlet:1.22.0'
|
||||||
maybeRuntime 'com.google.protobuf:protobuf-java:2.6.0'
|
maybeRuntime 'com.google.protobuf:protobuf-java:2.6.0'
|
||||||
|
@ -245,6 +245,7 @@ dependencies {
|
||||||
// dependencies should go after all other compile and testCompile
|
// dependencies should go after all other compile and testCompile
|
||||||
// dependencies to avoid overriding them accidentally.
|
// dependencies to avoid overriding them accidentally.
|
||||||
compile 'javax.servlet:javax.servlet-api:3.1.0' // google-api-client-appeng
|
compile 'javax.servlet:javax.servlet-api:3.1.0' // google-api-client-appeng
|
||||||
|
compile 'com.google.oauth-client:google-oauth-client-java6:1.20.0'
|
||||||
|
|
||||||
// Dependencies needed for jaxb compilation.
|
// Dependencies needed for jaxb compilation.
|
||||||
// Use jaxb 2.2.11 because 2.3 is known to break the Ant task we use.
|
// Use jaxb 2.2.11 because 2.3 is known to break the Ant task we use.
|
||||||
|
|
|
@ -510,10 +510,10 @@ def com_google_api_client():
|
||||||
java_import_external(
|
java_import_external(
|
||||||
name = "com_google_api_client",
|
name = "com_google_api_client",
|
||||||
licenses = ["notice"], # The Apache Software License, Version 2.0
|
licenses = ["notice"], # The Apache Software License, Version 2.0
|
||||||
jar_sha256 = "24e1a69d6c04e6e72e3e16757d46d32daa7dd43cb32c3895f832f25358be1402",
|
jar_sha256 = "fd1f06bc8cea64cd6e85e7a29dd632ba05c4e4ec2daae9a7115b6dbc9004fcd9",
|
||||||
jar_urls = [
|
jar_urls = [
|
||||||
"http://maven.ibiblio.org/maven2/com/google/api-client/google-api-client/1.25.0/google-api-client-1.25.0.jar",
|
"http://maven.ibiblio.org/maven2/com/google/api-client/google-api-client/1.27.0/google-api-client-1.27.0.jar",
|
||||||
"http://repo1.maven.org/maven2/com/google/api-client/google-api-client/1.25.0/google-api-client-1.25.0.jar",
|
"http://repo1.maven.org/maven2/com/google/api-client/google-api-client/1.27.0/google-api-client-1.27.0.jar",
|
||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"@com_google_oauth_client",
|
"@com_google_oauth_client",
|
||||||
|
@ -609,10 +609,10 @@ def com_google_api_client_java6():
|
||||||
java_import_external(
|
java_import_external(
|
||||||
name = "com_google_api_client_java6",
|
name = "com_google_api_client_java6",
|
||||||
licenses = ["notice"], # The Apache Software License, Version 2.0
|
licenses = ["notice"], # The Apache Software License, Version 2.0
|
||||||
jar_sha256 = "df4f423f33f467d248e51deb555404771f7bc41430b2d4d1e49966c79c0b207b",
|
jar_sha256 = "056ef35bafebd2e2b27817be00aa08e79d24fd4ba1c7c70c2407fd2ec9582cb5",
|
||||||
jar_urls = [
|
jar_urls = [
|
||||||
"http://maven.ibiblio.org/maven2/com/google/api-client/google-api-client-java6/1.20.0/google-api-client-java6-1.20.0.jar",
|
"http://maven.ibiblio.org/maven2/com/google/api-client/google-api-client-java6/1.27.0/google-api-client-java6-1.27.0.jar",
|
||||||
"http://repo1.maven.org/maven2/com/google/api-client/google-api-client-java6/1.20.0/google-api-client-java6-1.20.0.jar",
|
"http://repo1.maven.org/maven2/com/google/api-client/google-api-client-java6/1.27.0/google-api-client-java6-1.27.0.jar",
|
||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"@com_google_api_client",
|
"@com_google_api_client",
|
||||||
|
@ -1487,10 +1487,10 @@ def com_google_oauth_client_java6():
|
||||||
java_import_external(
|
java_import_external(
|
||||||
name = "com_google_oauth_client_java6",
|
name = "com_google_oauth_client_java6",
|
||||||
licenses = ["notice"], # The Apache Software License, Version 2.0
|
licenses = ["notice"], # The Apache Software License, Version 2.0
|
||||||
jar_sha256 = "c8d61bbb65f6721b85c38a88e4cb2a1782e04b8055589036705391361b658197",
|
jar_sha256 = "1065d7ec93a9ca93005e85d73f23f71353dd731f5c5f0310d66735ad81a16c33",
|
||||||
jar_urls = [
|
jar_urls = [
|
||||||
"http://maven.ibiblio.org/maven2/com/google/oauth-client/google-oauth-client-java6/1.22.0/google-oauth-client-java6-1.22.0.jar",
|
"http://maven.ibiblio.org/maven2/com/google/oauth-client/google-oauth-client-java6/1.27.0/google-oauth-client-java6-1.27.0.jar",
|
||||||
"http://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client-java6/1.22.0/google-oauth-client-java6-1.22.0.jar",
|
"http://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client-java6/1.27.0/google-oauth-client-java6-1.27.0.jar",
|
||||||
],
|
],
|
||||||
deps = ["@com_google_oauth_client"],
|
deps = ["@com_google_oauth_client"],
|
||||||
)
|
)
|
||||||
|
|
|
@ -118,8 +118,7 @@ public class AuthModule {
|
||||||
static Details provideDefaultInstalledDetails() {
|
static Details provideDefaultInstalledDetails() {
|
||||||
return new Details()
|
return new Details()
|
||||||
.setAuthUri("https://accounts.google.com/o/oauth2/auth")
|
.setAuthUri("https://accounts.google.com/o/oauth2/auth")
|
||||||
.setTokenUri("https://accounts.google.com/o/oauth2/token")
|
.setTokenUri("https://accounts.google.com/o/oauth2/token");
|
||||||
.setRedirectUris(ImmutableList.of("urn:ietf:wg:oauth:2.0:oob", "http://localhost"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|
|
@ -70,6 +70,7 @@ java_library(
|
||||||
"@com_beust_jcommander",
|
"@com_beust_jcommander",
|
||||||
"@com_google_api_client",
|
"@com_google_api_client",
|
||||||
"@com_google_api_client_appengine",
|
"@com_google_api_client_appengine",
|
||||||
|
"@com_google_api_client_java6",
|
||||||
"@com_google_apis_google_api_services_appengine",
|
"@com_google_apis_google_api_services_appengine",
|
||||||
"@com_google_apis_google_api_services_bigquery",
|
"@com_google_apis_google_api_services_bigquery",
|
||||||
"@com_google_apis_google_api_services_dns",
|
"@com_google_apis_google_api_services_dns",
|
||||||
|
|
|
@ -14,10 +14,12 @@
|
||||||
|
|
||||||
package google.registry.tools;
|
package google.registry.tools;
|
||||||
|
|
||||||
|
import com.beust.jcommander.Parameter;
|
||||||
import com.beust.jcommander.Parameters;
|
import com.beust.jcommander.Parameters;
|
||||||
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
|
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
|
||||||
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
|
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
|
||||||
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
|
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
|
||||||
|
import com.google.api.client.googleapis.extensions.java6.auth.oauth2.GooglePromptReceiver;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/** Authorizes the nomulus tool for OAuth 2.0 access to remote resources. */
|
/** Authorizes the nomulus tool for OAuth 2.0 access to remote resources. */
|
||||||
|
@ -27,9 +29,29 @@ final class LoginCommand implements Command {
|
||||||
@Inject GoogleAuthorizationCodeFlow flow;
|
@Inject GoogleAuthorizationCodeFlow flow;
|
||||||
@Inject @AuthModule.ClientScopeQualifier String clientScopeQualifier;
|
@Inject @AuthModule.ClientScopeQualifier String clientScopeQualifier;
|
||||||
|
|
||||||
|
@Parameter(
|
||||||
|
names = "--remote",
|
||||||
|
description =
|
||||||
|
"Whether the command is run on a remote host where access to a browser is not available. "
|
||||||
|
+ "If set to true, a URL will be given and a code is expected to be entered after "
|
||||||
|
+ "the user completes authorization by visiting that URL.")
|
||||||
|
private boolean remote = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() throws Exception {
|
public void run() throws Exception {
|
||||||
new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())
|
AuthorizationCodeInstalledApp app;
|
||||||
.authorize(clientScopeQualifier);
|
if (remote) {
|
||||||
|
app =
|
||||||
|
new AuthorizationCodeInstalledApp(
|
||||||
|
flow,
|
||||||
|
new GooglePromptReceiver(),
|
||||||
|
url -> {
|
||||||
|
System.out.println("Please open the following address in your browser:");
|
||||||
|
System.out.println(" " + url);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
app = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver());
|
||||||
|
}
|
||||||
|
app.authorize(clientScopeQualifier);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue