From 42b508427bce4c6f8dbe263819c8fd1c6004dc8d Mon Sep 17 00:00:00 2001 From: Lai Jiang Date: Thu, 21 Dec 2023 16:17:37 -0500 Subject: [PATCH] Bypass SCRYPT hashing in tests (#2262) SCRYPT is much computationally heavier than SHA265 (by design), which resulted in test run time doubling due to most tests initializing canned data that uses hashing. Since out tests are not verifying the correctness of a specific hashing algorithm anyway, this PR makes it so that simple concatenation is used in tests. Also moved RegistryEnvironment to the util subproject so it can be called by PasswordUtils, which makes sense as it is a utility class. --- .../registry/batch/DeleteLoadTestDataAction.java | 4 ++-- .../google/registry/batch/DeleteProberDataAction.java | 4 ++-- .../registry/batch/ExpandBillingRecurrencesAction.java | 2 +- .../batch/ResaveAllEppResourcesPipelineAction.java | 2 +- .../registry/batch/WipeOutContactHistoryPiiAction.java | 2 +- .../registry/beam/common/RegistryPipelineOptions.java | 2 +- .../beam/common/RegistryPipelineWorkerInitializer.java | 4 ++-- .../java/google/registry/config/RegistryConfig.java | 1 + core/src/main/java/google/registry/dns/DnsMetrics.java | 4 ++-- .../java/google/registry/flows/TlsCredentials.java | 2 +- .../java/google/registry/loadtest/LoadTestAction.java | 2 +- .../java/google/registry/model/OteAccountBuilder.java | 2 +- .../transaction/JpaTransactionManagerImpl.java | 2 +- .../transaction/TransactionManagerFactory.java | 2 +- .../java/google/registry/rde/RdeStagingAction.java | 2 +- .../reporting/billing/GenerateInvoicesAction.java | 2 +- .../reporting/spec11/GenerateSpec11ReportAction.java | 2 +- .../request/auth/OidcTokenAuthenticationMechanism.java | 2 +- .../google/registry/tools/CreateRegistrarCommand.java | 2 +- .../google/registry/tools/RegistryToolEnvironment.java | 4 ++-- .../java/google/registry/tools/SetupOteCommand.java | 2 +- .../google/registry/tools/UpdateRegistrarCommand.java | 2 +- .../java/google/registry/tools/UpdateTldCommand.java | 2 +- .../java/google/registry/tools/VerifyOteCommand.java | 2 +- .../ui/server/registrar/ConsoleOteSetupAction.java | 4 ++-- .../registrar/ConsoleRegistrarCreatorAction.java | 2 +- .../registry/ui/server/registrar/ConsoleUiAction.java | 2 +- .../ui/server/registrar/RegistrarSettingsAction.java | 4 ++-- .../registry/batch/DeleteProberDataActionTest.java | 2 +- .../batch/ResaveAllEppResourcesPipelineActionTest.java | 2 +- .../beam/common/RegistryPipelineOptionsTest.java | 2 +- .../transaction/JpaTransactionManagerExtension.java | 1 + .../registry/testing/SystemPropertyExtension.java | 2 +- .../ui/server/registrar/ConsoleOteSetupActionTest.java | 2 +- .../registrar/ConsoleRegistrarCreatorActionTest.java | 2 +- .../server/registrar/RegistrarSettingsActionTest.java | 2 +- .../main/java/google/registry/util/PasswordUtils.java | 10 +++++++++- .../google/registry/util}/RegistryEnvironment.java | 2 +- .../google/registry/util}/SystemPropertySetter.java | 2 +- .../google/registry/util}/RegistryEnvironmentTest.java | 2 +- 40 files changed, 55 insertions(+), 45 deletions(-) rename {core/src/main/java/google/registry/config => util/src/main/java/google/registry/util}/RegistryEnvironment.java (98%) rename {core/src/main/java/google/registry/config => util/src/main/java/google/registry/util}/SystemPropertySetter.java (98%) rename {core/src/test/java/google/registry/config => util/src/test/java/google/registry/util}/RegistryEnvironmentTest.java (96%) diff --git a/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java b/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java index 95a1fb0ff..623864c8d 100644 --- a/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java +++ b/core/src/main/java/google/registry/batch/DeleteLoadTestDataAction.java @@ -17,15 +17,14 @@ package google.registry.batch; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static google.registry.batch.BatchModule.PARAM_DRY_RUN; -import static google.registry.config.RegistryEnvironment.PRODUCTION; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.request.Action.Method.POST; import static google.registry.util.DateTimeUtils.END_OF_TIME; +import static google.registry.util.RegistryEnvironment.PRODUCTION; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; -import google.registry.config.RegistryEnvironment; import google.registry.flows.poll.PollFlowUtils; import google.registry.model.EppResource; import google.registry.model.EppResourceUtils; @@ -40,6 +39,7 @@ import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import javax.inject.Inject; /** diff --git a/core/src/main/java/google/registry/batch/DeleteProberDataAction.java b/core/src/main/java/google/registry/batch/DeleteProberDataAction.java index 929e70555..d290f6fb3 100644 --- a/core/src/main/java/google/registry/batch/DeleteProberDataAction.java +++ b/core/src/main/java/google/registry/batch/DeleteProberDataAction.java @@ -18,13 +18,13 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static google.registry.batch.BatchModule.PARAM_DRY_RUN; -import static google.registry.config.RegistryEnvironment.PRODUCTION; import static google.registry.dns.DnsUtils.requestDomainDnsRefresh; import static google.registry.model.reporting.HistoryEntry.Type.DOMAIN_DELETE; import static google.registry.model.tld.Tlds.getTldsOfType; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.request.Action.Method.POST; import static google.registry.request.RequestParameters.PARAM_TLDS; +import static google.registry.util.RegistryEnvironment.PRODUCTION; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -32,7 +32,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import com.google.common.flogger.FluentLogger; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.model.CreateAutoTimestamp; import google.registry.model.EppResourceUtils; import google.registry.model.domain.Domain; @@ -41,6 +40,7 @@ import google.registry.model.tld.Tld.TldType; import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.auth.Auth; +import google.registry.util.RegistryEnvironment; import java.util.concurrent.atomic.AtomicInteger; import javax.inject.Inject; import org.hibernate.CacheMode; diff --git a/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java b/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java index d24105585..4082b149f 100644 --- a/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java +++ b/core/src/main/java/google/registry/batch/ExpandBillingRecurrencesAction.java @@ -31,7 +31,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.flogger.FluentLogger; import google.registry.beam.billing.ExpandBillingRecurrencesPipeline; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.model.billing.BillingEvent; import google.registry.model.billing.BillingRecurrence; import google.registry.model.common.Cursor; @@ -40,6 +39,7 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import java.io.IOException; import java.util.Optional; import javax.inject.Inject; diff --git a/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java b/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java index bca5eef79..07b530c1d 100644 --- a/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java +++ b/core/src/main/java/google/registry/batch/ResaveAllEppResourcesPipelineAction.java @@ -27,12 +27,12 @@ import com.google.common.collect.ImmutableMap; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import javax.inject.Inject; /** diff --git a/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java b/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java index 48406591e..579a72b2f 100644 --- a/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java +++ b/core/src/main/java/google/registry/batch/WipeOutContactHistoryPiiAction.java @@ -28,7 +28,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.beam.wipeout.WipeOutContactHistoryPiiPipeline; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.model.contact.ContactHistory; import google.registry.request.Action; import google.registry.request.Action.Service; @@ -36,6 +35,7 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import java.io.IOException; import java.util.Optional; import javax.inject.Inject; diff --git a/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java b/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java index 4384d5088..c74fbd7c4 100644 --- a/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java +++ b/core/src/main/java/google/registry/beam/common/RegistryPipelineOptions.java @@ -14,9 +14,9 @@ package google.registry.beam.common; -import google.registry.config.RegistryEnvironment; import google.registry.persistence.PersistenceModule.JpaTransactionManagerType; import google.registry.persistence.PersistenceModule.TransactionIsolationLevel; +import google.registry.util.RegistryEnvironment; import java.util.Objects; import javax.annotation.Nullable; import org.apache.beam.sdk.extensions.gcp.options.GcpOptions; diff --git a/core/src/main/java/google/registry/beam/common/RegistryPipelineWorkerInitializer.java b/core/src/main/java/google/registry/beam/common/RegistryPipelineWorkerInitializer.java index fe054ec6e..801ab8443 100644 --- a/core/src/main/java/google/registry/beam/common/RegistryPipelineWorkerInitializer.java +++ b/core/src/main/java/google/registry/beam/common/RegistryPipelineWorkerInitializer.java @@ -19,10 +19,10 @@ import static google.registry.beam.common.RegistryPipelineOptions.toRegistryPipe import com.google.auto.service.AutoService; import com.google.common.flogger.FluentLogger; import dagger.Lazy; -import google.registry.config.RegistryEnvironment; -import google.registry.config.SystemPropertySetter; import google.registry.persistence.transaction.JpaTransactionManager; import google.registry.persistence.transaction.TransactionManagerFactory; +import google.registry.util.RegistryEnvironment; +import google.registry.util.SystemPropertySetter; import org.apache.beam.sdk.harness.JvmInitializer; import org.apache.beam.sdk.options.PipelineOptions; diff --git a/core/src/main/java/google/registry/config/RegistryConfig.java b/core/src/main/java/google/registry/config/RegistryConfig.java index bdd6dc24e..3acf583df 100644 --- a/core/src/main/java/google/registry/config/RegistryConfig.java +++ b/core/src/main/java/google/registry/config/RegistryConfig.java @@ -36,6 +36,7 @@ import dagger.Provides; import google.registry.dns.ReadDnsRefreshRequestsAction; import google.registry.model.common.DnsRefreshRequest; import google.registry.persistence.transaction.JpaTransactionManager; +import google.registry.util.RegistryEnvironment; import google.registry.util.YamlUtils; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/core/src/main/java/google/registry/dns/DnsMetrics.java b/core/src/main/java/google/registry/dns/DnsMetrics.java index 0e4fef02f..1e935fe86 100644 --- a/core/src/main/java/google/registry/dns/DnsMetrics.java +++ b/core/src/main/java/google/registry/dns/DnsMetrics.java @@ -14,7 +14,7 @@ package google.registry.dns; -import static google.registry.config.RegistryEnvironment.PRODUCTION; +import static google.registry.util.RegistryEnvironment.PRODUCTION; import com.google.common.collect.ImmutableSet; import com.google.monitoring.metrics.DistributionFitter; @@ -24,7 +24,7 @@ import com.google.monitoring.metrics.FibonacciFitter; import com.google.monitoring.metrics.IncrementableMetric; import com.google.monitoring.metrics.LabelDescriptor; import com.google.monitoring.metrics.MetricRegistryImpl; -import google.registry.config.RegistryEnvironment; +import google.registry.util.RegistryEnvironment; import javax.inject.Inject; import org.joda.time.Duration; diff --git a/core/src/main/java/google/registry/flows/TlsCredentials.java b/core/src/main/java/google/registry/flows/TlsCredentials.java index 1b90f417b..e3fa2d0ea 100644 --- a/core/src/main/java/google/registry/flows/TlsCredentials.java +++ b/core/src/main/java/google/registry/flows/TlsCredentials.java @@ -26,7 +26,6 @@ import com.google.common.net.InetAddresses; import dagger.Module; import dagger.Provides; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.flows.EppException.AuthenticationErrorException; import google.registry.flows.certs.CertificateChecker; import google.registry.flows.certs.CertificateChecker.InsecureCertificateException; @@ -34,6 +33,7 @@ import google.registry.model.registrar.Registrar; import google.registry.request.Header; import google.registry.util.CidrAddressBlock; import google.registry.util.ProxyHttpHeaders; +import google.registry.util.RegistryEnvironment; import java.net.InetAddress; import java.security.MessageDigest; import java.util.Optional; diff --git a/core/src/main/java/google/registry/loadtest/LoadTestAction.java b/core/src/main/java/google/registry/loadtest/LoadTestAction.java index cb4be932e..354140ed6 100644 --- a/core/src/main/java/google/registry/loadtest/LoadTestAction.java +++ b/core/src/main/java/google/registry/loadtest/LoadTestAction.java @@ -29,12 +29,12 @@ import com.google.common.collect.Iterators; import com.google.common.flogger.FluentLogger; import com.google.protobuf.Timestamp; import google.registry.batch.CloudTasksUtils; -import google.registry.config.RegistryEnvironment; import google.registry.request.Action; import google.registry.request.Action.Service; import google.registry.request.Parameter; import google.registry.request.auth.Auth; import google.registry.security.XsrfTokenManager; +import google.registry.util.RegistryEnvironment; import java.time.Instant; import java.util.Arrays; import java.util.Iterator; diff --git a/core/src/main/java/google/registry/model/OteAccountBuilder.java b/core/src/main/java/google/registry/model/OteAccountBuilder.java index d8b062f8c..aed59edee 100644 --- a/core/src/main/java/google/registry/model/OteAccountBuilder.java +++ b/core/src/main/java/google/registry/model/OteAccountBuilder.java @@ -28,7 +28,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Sets; import com.google.common.collect.Streams; -import google.registry.config.RegistryEnvironment; import google.registry.model.pricing.StaticPremiumListPricingEngine; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; @@ -40,6 +39,7 @@ import google.registry.model.tld.label.PremiumList; import google.registry.model.tld.label.PremiumListDao; import google.registry.persistence.VKey; import google.registry.util.CidrAddressBlock; +import google.registry.util.RegistryEnvironment; import java.util.Collection; import java.util.Optional; import java.util.function.Function; diff --git a/core/src/main/java/google/registry/persistence/transaction/JpaTransactionManagerImpl.java b/core/src/main/java/google/registry/persistence/transaction/JpaTransactionManagerImpl.java index 875859193..b6d5b16e6 100644 --- a/core/src/main/java/google/registry/persistence/transaction/JpaTransactionManagerImpl.java +++ b/core/src/main/java/google/registry/persistence/transaction/JpaTransactionManagerImpl.java @@ -33,12 +33,12 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; import com.google.common.flogger.StackSize; -import google.registry.config.RegistryEnvironment; import google.registry.model.ImmutableObject; import google.registry.persistence.JpaRetries; import google.registry.persistence.PersistenceModule.TransactionIsolationLevel; import google.registry.persistence.VKey; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import google.registry.util.Retrier; import google.registry.util.SystemSleeper; import java.io.Serializable; diff --git a/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java b/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java index fd9833f3d..1da28427f 100644 --- a/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java +++ b/core/src/main/java/google/registry/persistence/transaction/TransactionManagerFactory.java @@ -20,10 +20,10 @@ import static google.registry.util.PreconditionsUtils.checkArgumentNotNull; import com.google.appengine.api.utils.SystemProperty; import com.google.appengine.api.utils.SystemProperty.Environment.Value; import com.google.common.base.Suppliers; -import google.registry.config.RegistryEnvironment; import google.registry.persistence.DaggerPersistenceComponent; import google.registry.tools.RegistryToolEnvironment; import google.registry.util.NonFinalForTesting; +import google.registry.util.RegistryEnvironment; import java.util.function.Supplier; /** Factory class to create {@link TransactionManager} instance. */ diff --git a/core/src/main/java/google/registry/rde/RdeStagingAction.java b/core/src/main/java/google/registry/rde/RdeStagingAction.java index ff1ae8ceb..898a55f0c 100644 --- a/core/src/main/java/google/registry/rde/RdeStagingAction.java +++ b/core/src/main/java/google/registry/rde/RdeStagingAction.java @@ -40,7 +40,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.io.BaseEncoding; import google.registry.beam.rde.RdePipeline; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.KeyModule.Key; import google.registry.model.common.Cursor; @@ -57,6 +56,7 @@ import google.registry.request.RequestParameters; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import google.registry.xml.ValidationMode; import java.io.IOException; import java.util.Optional; diff --git a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java index c18786a49..1dff4e922 100644 --- a/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java +++ b/core/src/main/java/google/registry/reporting/billing/GenerateInvoicesAction.java @@ -29,7 +29,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.persistence.PersistenceModule; import google.registry.reporting.ReportingModule; import google.registry.request.Action; @@ -38,6 +37,7 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import java.io.IOException; import javax.inject.Inject; import org.joda.time.Duration; diff --git a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java index d92ba0f4a..d761daebf 100644 --- a/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java +++ b/core/src/main/java/google/registry/reporting/spec11/GenerateSpec11ReportAction.java @@ -29,7 +29,6 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.batch.CloudTasksUtils; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.keyring.api.KeyModule.Key; import google.registry.reporting.ReportingModule; import google.registry.request.Action; @@ -38,6 +37,7 @@ import google.registry.request.Parameter; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import java.io.IOException; import javax.inject.Inject; import org.joda.time.Duration; diff --git a/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java b/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java index 928c70074..93e49d5f3 100644 --- a/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java +++ b/core/src/main/java/google/registry/request/auth/OidcTokenAuthenticationMechanism.java @@ -20,13 +20,13 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.model.console.User; import google.registry.model.console.UserDao; import google.registry.request.auth.AuthModule.IapOidc; import google.registry.request.auth.AuthModule.RegularOidc; import google.registry.request.auth.AuthModule.RegularOidcFallback; import google.registry.request.auth.AuthSettings.AuthLevel; +import google.registry.util.RegistryEnvironment; import java.util.Optional; import javax.annotation.Nullable; import javax.inject.Inject; diff --git a/core/src/main/java/google/registry/tools/CreateRegistrarCommand.java b/core/src/main/java/google/registry/tools/CreateRegistrarCommand.java index 7b75f7c66..83f43c795 100644 --- a/core/src/main/java/google/registry/tools/CreateRegistrarCommand.java +++ b/core/src/main/java/google/registry/tools/CreateRegistrarCommand.java @@ -30,8 +30,8 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Streams; -import google.registry.config.RegistryEnvironment; import google.registry.model.registrar.Registrar; +import google.registry.util.RegistryEnvironment; import java.util.ArrayList; import java.util.List; import java.util.Optional; diff --git a/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java b/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java index 390cf251c..749e3eacc 100644 --- a/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java +++ b/core/src/main/java/google/registry/tools/RegistryToolEnvironment.java @@ -21,8 +21,8 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Ascii; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import google.registry.config.RegistryEnvironment; -import google.registry.config.SystemPropertySetter; +import google.registry.util.RegistryEnvironment; +import google.registry.util.SystemPropertySetter; /** Enum of production environments, used for the {@code --environment} flag. */ public enum RegistryToolEnvironment { diff --git a/core/src/main/java/google/registry/tools/SetupOteCommand.java b/core/src/main/java/google/registry/tools/SetupOteCommand.java index 0bc55a19e..48077f409 100644 --- a/core/src/main/java/google/registry/tools/SetupOteCommand.java +++ b/core/src/main/java/google/registry/tools/SetupOteCommand.java @@ -22,10 +22,10 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.google.common.collect.ImmutableMap; import com.google.common.io.MoreFiles; -import google.registry.config.RegistryEnvironment; import google.registry.model.OteAccountBuilder; import google.registry.tools.params.PathParameter; import google.registry.util.Clock; +import google.registry.util.RegistryEnvironment; import google.registry.util.StringGenerator; import java.nio.file.Path; import java.util.ArrayList; diff --git a/core/src/main/java/google/registry/tools/UpdateRegistrarCommand.java b/core/src/main/java/google/registry/tools/UpdateRegistrarCommand.java index 4d4b23fa2..ab4c0cbf7 100644 --- a/core/src/main/java/google/registry/tools/UpdateRegistrarCommand.java +++ b/core/src/main/java/google/registry/tools/UpdateRegistrarCommand.java @@ -18,8 +18,8 @@ import static google.registry.util.PreconditionsUtils.checkArgumentNotNull; import static google.registry.util.PreconditionsUtils.checkArgumentPresent; import com.beust.jcommander.Parameters; -import google.registry.config.RegistryEnvironment; import google.registry.model.registrar.Registrar; +import google.registry.util.RegistryEnvironment; import javax.annotation.Nullable; /** Command to update a Registrar. */ diff --git a/core/src/main/java/google/registry/tools/UpdateTldCommand.java b/core/src/main/java/google/registry/tools/UpdateTldCommand.java index 72f4970f5..938416558 100644 --- a/core/src/main/java/google/registry/tools/UpdateTldCommand.java +++ b/core/src/main/java/google/registry/tools/UpdateTldCommand.java @@ -25,10 +25,10 @@ import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameters; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import google.registry.config.RegistryEnvironment; import google.registry.model.tld.Tld; import google.registry.model.tld.Tld.TldState; import google.registry.tools.params.StringListParameter; +import google.registry.util.RegistryEnvironment; import java.util.List; import java.util.Map; import java.util.Optional; diff --git a/core/src/main/java/google/registry/tools/VerifyOteCommand.java b/core/src/main/java/google/registry/tools/VerifyOteCommand.java index ec26c4b1e..605dd28e3 100644 --- a/core/src/main/java/google/registry/tools/VerifyOteCommand.java +++ b/core/src/main/java/google/registry/tools/VerifyOteCommand.java @@ -25,9 +25,9 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Streams; -import google.registry.config.RegistryEnvironment; import google.registry.model.registrar.Registrar; import google.registry.tools.server.VerifyOteAction; +import google.registry.util.RegistryEnvironment; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java index d4e7bf708..4b02806a4 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleOteSetupAction.java @@ -15,8 +15,8 @@ package google.registry.ui.server.registrar; import static com.google.common.base.Preconditions.checkState; -import static google.registry.config.RegistryEnvironment.PRODUCTION; import static google.registry.ui.server.SoyTemplateUtils.CSS_RENAMING_MAP_SUPPLIER; +import static google.registry.util.RegistryEnvironment.PRODUCTION; import static javax.servlet.http.HttpServletResponse.SC_FORBIDDEN; import com.google.common.base.Ascii; @@ -24,7 +24,6 @@ import com.google.common.base.Supplier; import com.google.common.collect.ImmutableMap; import com.google.common.flogger.FluentLogger; import com.google.template.soy.tofu.SoyTofu; -import google.registry.config.RegistryEnvironment; import google.registry.model.OteAccountBuilder; import google.registry.request.Action; import google.registry.request.Action.Method; @@ -34,6 +33,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor; import google.registry.ui.server.SendEmailUtils; import google.registry.ui.server.SoyTemplateUtils; import google.registry.ui.soy.registrar.OteSetupConsoleSoyInfo; +import google.registry.util.RegistryEnvironment; import google.registry.util.StringGenerator; import java.util.HashMap; import java.util.Optional; diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java index e80e149ce..e64a544c6 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorAction.java @@ -26,7 +26,6 @@ import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import com.google.common.flogger.FluentLogger; import com.google.template.soy.tofu.SoyTofu; -import google.registry.config.RegistryEnvironment; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar.State; import google.registry.model.registrar.RegistrarAddress; @@ -44,6 +43,7 @@ import google.registry.ui.soy.registrar.ConsoleSoyInfo; import google.registry.ui.soy.registrar.ConsoleUtilsSoyInfo; import google.registry.ui.soy.registrar.FormsSoyInfo; import google.registry.ui.soy.registrar.RegistrarCreateConsoleSoyInfo; +import google.registry.util.RegistryEnvironment; import google.registry.util.StringGenerator; import java.util.HashMap; import java.util.Optional; diff --git a/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java b/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java index 9de381ba4..fe22c10ca 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/ConsoleUiAction.java @@ -27,7 +27,6 @@ import com.google.common.flogger.FluentLogger; import com.google.template.soy.data.SoyMapData; import com.google.template.soy.tofu.SoyTofu; import google.registry.config.RegistryConfig.Config; -import google.registry.config.RegistryEnvironment; import google.registry.request.Action; import google.registry.request.Parameter; import google.registry.request.auth.Auth; @@ -36,6 +35,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor.RegistrarAcce import google.registry.request.auth.AuthenticatedRegistrarAccessor.Role; import google.registry.ui.server.SoyTemplateUtils; import google.registry.ui.soy.registrar.ConsoleSoyInfo; +import google.registry.util.RegistryEnvironment; import java.util.HashMap; import java.util.Optional; import javax.inject.Inject; diff --git a/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java b/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java index e8ce54132..b574d6eb4 100644 --- a/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java +++ b/core/src/main/java/google/registry/ui/server/registrar/RegistrarSettingsAction.java @@ -18,11 +18,11 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static com.google.common.collect.Sets.difference; -import static google.registry.config.RegistryEnvironment.PRODUCTION; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; import static google.registry.security.JsonResponseHelper.Status.ERROR; import static google.registry.security.JsonResponseHelper.Status.SUCCESS; import static google.registry.util.PreconditionsUtils.checkArgumentPresent; +import static google.registry.util.RegistryEnvironment.PRODUCTION; import com.google.auto.value.AutoValue; import com.google.common.base.Ascii; @@ -37,7 +37,6 @@ import com.google.common.collect.Sets; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; import google.registry.batch.CloudTasksUtils; -import google.registry.config.RegistryEnvironment; import google.registry.export.sheet.SyncRegistrarsSheetAction; import google.registry.flows.certs.CertificateChecker; import google.registry.flows.certs.CertificateChecker.InsecureCertificateException; @@ -61,6 +60,7 @@ import google.registry.ui.server.RegistrarFormFields; import google.registry.ui.server.SendEmailUtils; import google.registry.util.CollectionUtils; import google.registry.util.DiffUtils; +import google.registry.util.RegistryEnvironment; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; diff --git a/core/src/test/java/google/registry/batch/DeleteProberDataActionTest.java b/core/src/test/java/google/registry/batch/DeleteProberDataActionTest.java index 7e0f0bb41..10cb8287d 100644 --- a/core/src/test/java/google/registry/batch/DeleteProberDataActionTest.java +++ b/core/src/test/java/google/registry/batch/DeleteProberDataActionTest.java @@ -33,7 +33,6 @@ import static org.joda.time.DateTimeZone.UTC; import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.common.collect.ImmutableSet; -import google.registry.config.RegistryEnvironment; import google.registry.model.ImmutableObject; import google.registry.model.billing.BillingBase.Reason; import google.registry.model.billing.BillingEvent; @@ -47,6 +46,7 @@ import google.registry.persistence.transaction.JpaTestExtensions; import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension; import google.registry.testing.DatabaseHelper; import google.registry.testing.SystemPropertyExtension; +import google.registry.util.RegistryEnvironment; import java.util.Optional; import java.util.Set; import org.joda.money.Money; diff --git a/core/src/test/java/google/registry/batch/ResaveAllEppResourcesPipelineActionTest.java b/core/src/test/java/google/registry/batch/ResaveAllEppResourcesPipelineActionTest.java index c776534e8..077c91101 100644 --- a/core/src/test/java/google/registry/batch/ResaveAllEppResourcesPipelineActionTest.java +++ b/core/src/test/java/google/registry/batch/ResaveAllEppResourcesPipelineActionTest.java @@ -25,8 +25,8 @@ import com.google.api.services.dataflow.model.LaunchFlexTemplateParameter; import com.google.api.services.dataflow.model.LaunchFlexTemplateRequest; import com.google.common.collect.ImmutableMap; import google.registry.beam.BeamActionTestBase; -import google.registry.config.RegistryEnvironment; import google.registry.testing.FakeClock; +import google.registry.util.RegistryEnvironment; import org.junit.jupiter.api.Test; /** Unit tests for {@link ResaveAllEppResourcesPipelineAction}. */ diff --git a/core/src/test/java/google/registry/beam/common/RegistryPipelineOptionsTest.java b/core/src/test/java/google/registry/beam/common/RegistryPipelineOptionsTest.java index e5c61ef4d..8c0bdc72c 100644 --- a/core/src/test/java/google/registry/beam/common/RegistryPipelineOptionsTest.java +++ b/core/src/test/java/google/registry/beam/common/RegistryPipelineOptionsTest.java @@ -18,10 +18,10 @@ import static com.google.common.truth.Truth.assertThat; import static google.registry.beam.common.RegistryPipelineOptions.validateRegistryPipelineOptions; import static org.junit.jupiter.api.Assertions.assertThrows; -import google.registry.config.RegistryEnvironment; import google.registry.persistence.PersistenceModule.JpaTransactionManagerType; import google.registry.persistence.PersistenceModule.TransactionIsolationLevel; import google.registry.testing.SystemPropertyExtension; +import google.registry.util.RegistryEnvironment; import org.apache.beam.sdk.options.PipelineOptionsFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java index 804aca312..53cb96995 100644 --- a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java +++ b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java @@ -105,6 +105,7 @@ public abstract class JpaTransactionManagerExtension // reused between test methods if the requested schema remains the same. private static EntityManagerFactory emf; // Hash of the ORM entity names in the current schema in the test db. + private static int emfEntityHash; private JpaTransactionManager cachedTm; diff --git a/core/src/test/java/google/registry/testing/SystemPropertyExtension.java b/core/src/test/java/google/registry/testing/SystemPropertyExtension.java index 539d982a4..71826004b 100644 --- a/core/src/test/java/google/registry/testing/SystemPropertyExtension.java +++ b/core/src/test/java/google/registry/testing/SystemPropertyExtension.java @@ -17,7 +17,7 @@ package google.registry.testing; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; -import google.registry.config.SystemPropertySetter; +import google.registry.util.SystemPropertySetter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java index b71f91fb2..3a39af1a1 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java @@ -30,7 +30,6 @@ import com.google.appengine.api.users.UserServiceFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSetMultimap; -import google.registry.config.RegistryEnvironment; import google.registry.groups.GmailClient; import google.registry.model.tld.Tld; import google.registry.persistence.transaction.JpaTestExtensions; @@ -47,6 +46,7 @@ import google.registry.testing.SystemPropertyExtension; import google.registry.testing.UserServiceExtension; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; +import google.registry.util.RegistryEnvironment; import java.util.Optional; import javax.mail.internet.InternetAddress; import javax.servlet.http.HttpServletRequest; diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java index 16dba14d9..c8fb47b89 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java @@ -28,7 +28,6 @@ import com.google.appengine.api.users.UserServiceFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSetMultimap; -import google.registry.config.RegistryEnvironment; import google.registry.groups.GmailClient; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; @@ -47,6 +46,7 @@ import google.registry.testing.SystemPropertyExtension; import google.registry.testing.UserServiceExtension; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; +import google.registry.util.RegistryEnvironment; import java.util.Optional; import javax.mail.internet.InternetAddress; import javax.servlet.http.HttpServletRequest; diff --git a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java index f96f9cbb7..40df861e5 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java @@ -30,7 +30,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import google.registry.config.RegistryEnvironment; import google.registry.export.sheet.SyncRegistrarsSheetAction; import google.registry.model.registrar.Registrar; import google.registry.request.auth.AuthenticatedRegistrarAccessor; @@ -40,6 +39,7 @@ import google.registry.testing.CloudTasksHelper.TaskMatcher; import google.registry.testing.SystemPropertyExtension; import google.registry.util.CidrAddressBlock; import google.registry.util.EmailMessage; +import google.registry.util.RegistryEnvironment; import java.util.Map; import java.util.function.BiFunction; import java.util.function.Function; diff --git a/util/src/main/java/google/registry/util/PasswordUtils.java b/util/src/main/java/google/registry/util/PasswordUtils.java index 031f5c84c..365aec9a5 100644 --- a/util/src/main/java/google/registry/util/PasswordUtils.java +++ b/util/src/main/java/google/registry/util/PasswordUtils.java @@ -22,6 +22,7 @@ import static java.nio.charset.StandardCharsets.US_ASCII; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; import com.google.common.flogger.FluentLogger; +import com.google.common.primitives.Bytes; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; @@ -68,15 +69,22 @@ public final class PasswordUtils { .digest((new String(password, US_ASCII) + base64().encode(salt)).getBytes(US_ASCII)); } }, + /** * Memory-hard hashing algorithm, preferred over SHA-256. * + *

Note that in tests, we simply concatenate the password and salt which is much faster and + * reduces the overall test run time by a half. Our tests are not verifying that SCRYPT is + * implemented correctly anyway. + * * @see Scrypt */ SCRYPT { @Override byte[] hash(byte[] password, byte[] salt) { - return SCrypt.generate(password, salt, 32768, 8, 1, 256); + return RegistryEnvironment.get() == RegistryEnvironment.UNITTEST + ? Bytes.concat(password, salt) + : SCrypt.generate(password, salt, 32768, 8, 1, 256); } }; diff --git a/core/src/main/java/google/registry/config/RegistryEnvironment.java b/util/src/main/java/google/registry/util/RegistryEnvironment.java similarity index 98% rename from core/src/main/java/google/registry/config/RegistryEnvironment.java rename to util/src/main/java/google/registry/util/RegistryEnvironment.java index cc3b2a558..8b606d3fe 100644 --- a/core/src/main/java/google/registry/config/RegistryEnvironment.java +++ b/util/src/main/java/google/registry/util/RegistryEnvironment.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.config; +package google.registry.util; import com.google.common.base.Ascii; diff --git a/core/src/main/java/google/registry/config/SystemPropertySetter.java b/util/src/main/java/google/registry/util/SystemPropertySetter.java similarity index 98% rename from core/src/main/java/google/registry/config/SystemPropertySetter.java rename to util/src/main/java/google/registry/util/SystemPropertySetter.java index 41cd864ea..31b2c642b 100644 --- a/core/src/main/java/google/registry/config/SystemPropertySetter.java +++ b/util/src/main/java/google/registry/util/SystemPropertySetter.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.config; +package google.registry.util; import javax.annotation.Nullable; diff --git a/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java b/util/src/test/java/google/registry/util/RegistryEnvironmentTest.java similarity index 96% rename from core/src/test/java/google/registry/config/RegistryEnvironmentTest.java rename to util/src/test/java/google/registry/util/RegistryEnvironmentTest.java index b5434c09e..b93b7e3da 100644 --- a/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java +++ b/util/src/test/java/google/registry/util/RegistryEnvironmentTest.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package google.registry.config; +package google.registry.util; import org.junit.jupiter.api.Test;