mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 00:17:20 +02:00
Put the path to client_secrets in a config option.
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=148214513
This commit is contained in:
parent
68bac57da5
commit
acc7d19106
5 changed files with 65 additions and 21 deletions
|
@ -19,6 +19,7 @@ import static google.registry.config.ConfigUtils.makeUrl;
|
||||||
import static google.registry.config.YamlUtils.getConfigSettings;
|
import static google.registry.config.YamlUtils.getConfigSettings;
|
||||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
@ -974,6 +975,17 @@ public final class RegistryConfig {
|
||||||
return "/tos";
|
return "/tos";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the OAuth2 client secrets file.
|
||||||
|
*
|
||||||
|
* <p>This is the name of a resource relative to the root of the class tree.
|
||||||
|
*/
|
||||||
|
@Provides
|
||||||
|
@Config("clientSecretFilename")
|
||||||
|
public static String provideClientSecretFilename(RegistryConfigSettings config) {
|
||||||
|
return config.registryTool.clientSecretFilename;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the help text to be used by RDAP.
|
* Returns the help text to be used by RDAP.
|
||||||
*
|
*
|
||||||
|
@ -1174,6 +1186,12 @@ public final class RegistryConfig {
|
||||||
return Duration.standardDays(CONFIG_SETTINGS.get().registryPolicy.contactAutomaticTransferDays);
|
return Duration.standardDays(CONFIG_SETTINGS.get().registryPolicy.contactAutomaticTransferDays);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Provided for testing. */
|
||||||
|
@VisibleForTesting
|
||||||
|
public static String getClientSecretFilename() {
|
||||||
|
return CONFIG_SETTINGS.get().registryTool.clientSecretFilename;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Memoizes loading of the {@link RegistryConfigSettings} POJO.
|
* Memoizes loading of the {@link RegistryConfigSettings} POJO.
|
||||||
*
|
*
|
||||||
|
|
|
@ -32,6 +32,7 @@ public class RegistryConfigSettings {
|
||||||
public Rdap rdap;
|
public Rdap rdap;
|
||||||
public Braintree braintree;
|
public Braintree braintree;
|
||||||
public Kms kms;
|
public Kms kms;
|
||||||
|
public RegistryTool registryTool;
|
||||||
|
|
||||||
/** Configuration options that apply to the entire App Engine project. */
|
/** Configuration options that apply to the entire App Engine project. */
|
||||||
public static class AppEngine {
|
public static class AppEngine {
|
||||||
|
@ -132,4 +133,9 @@ public class RegistryConfigSettings {
|
||||||
public String publicKey;
|
public String publicKey;
|
||||||
public Map<String, String> merchantAccountIdsMap;
|
public Map<String, String> merchantAccountIdsMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Configuration options for the registry tool. */
|
||||||
|
public static class RegistryTool {
|
||||||
|
public String clientSecretFilename;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,3 +190,8 @@ kms:
|
||||||
# The name to use for the Cloud KMS KeyRing which will store encryption keys
|
# The name to use for the Cloud KMS KeyRing which will store encryption keys
|
||||||
# for Nomulus secrets.
|
# for Nomulus secrets.
|
||||||
keyringName: nomulus
|
keyringName: nomulus
|
||||||
|
|
||||||
|
# Configuration options relevant to the "nomulus" registry tool.
|
||||||
|
registryTool:
|
||||||
|
# Name of the client secret file used for authenticating with App Engine.
|
||||||
|
clientSecretFilename: /google/registry/tools/resources/client_secret.json
|
||||||
|
|
|
@ -41,11 +41,9 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.lang.annotation.Documented;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
import javax.inject.Qualifier;
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,22 +66,12 @@ class DefaultRequestFactoryModule {
|
||||||
private static final File DATA_STORE_DIR =
|
private static final File DATA_STORE_DIR =
|
||||||
new File(System.getProperty("user.home"), ".config/nomulus/credentials");
|
new File(System.getProperty("user.home"), ".config/nomulus/credentials");
|
||||||
|
|
||||||
// TODO(mmuller): replace with a config parameter.
|
|
||||||
private static final String CLIENT_SECRET_FILENAME =
|
|
||||||
"/google/registry/tools/resources/client_secret.json";
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@ClientSecretFilename
|
|
||||||
String provideClientSecretFilename() {
|
|
||||||
return CLIENT_SECRET_FILENAME;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns the credential object for the user. */
|
/** Returns the credential object for the user. */
|
||||||
@Provides
|
@Provides
|
||||||
Credential provideCredential(
|
Credential provideCredential(
|
||||||
AbstractDataStoreFactory dataStoreFactory,
|
AbstractDataStoreFactory dataStoreFactory,
|
||||||
Authorizer authorizer,
|
Authorizer authorizer,
|
||||||
@ClientSecretFilename String clientSecretFilename) {
|
@Config("clientSecretFilename") String clientSecretFilename) {
|
||||||
try {
|
try {
|
||||||
// Load the client secrets file.
|
// Load the client secrets file.
|
||||||
JacksonFactory jsonFactory = new JacksonFactory();
|
JacksonFactory jsonFactory = new JacksonFactory();
|
||||||
|
@ -197,12 +185,4 @@ class DefaultRequestFactoryModule {
|
||||||
interface Authorizer {
|
interface Authorizer {
|
||||||
Credential authorize(GoogleClientSecrets clientSecrets);
|
Credential authorize(GoogleClientSecrets clientSecrets);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Dagger qualifier for the client secret filename.
|
|
||||||
*
|
|
||||||
* <p>TODO(mmuller): move this to config.
|
|
||||||
*/
|
|
||||||
@Qualifier
|
|
||||||
@Documented
|
|
||||||
public @interface ClientSecretFilename {}
|
|
||||||
}
|
}
|
||||||
|
|
35
javatests/google/registry/config/RegistryConfigTest.java
Normal file
35
javatests/google/registry/config/RegistryConfigTest.java
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2017 The Nomulus Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package google.registry.config;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.JUnit4;
|
||||||
|
|
||||||
|
@RunWith(JUnit4.class)
|
||||||
|
public class RegistryConfigTest {
|
||||||
|
|
||||||
|
public RegistryConfigTest() {}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_clientSecretFilename() {
|
||||||
|
RegistryConfigSettings config = YamlUtils.getConfigSettings();
|
||||||
|
// Verify that we're pulling this from the default.
|
||||||
|
assertThat(RegistryConfig.getClientSecretFilename()).isEqualTo(
|
||||||
|
"/google/registry/tools/resources/client_secret.json");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue