From 3e8c7ba9bc10232455db58839285af94c1ae238e Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Fri, 23 Nov 2018 17:31:22 +0000 Subject: [PATCH] Merge fixes to make sure the crypto service config is intact --- .../services/config/NodeConfigurationImpl.kt | 12 ++++++++++ .../schema/v1/V1NodeConfigurationSpec.kt | 23 ++++++++++++++++--- .../config/NodeConfigurationImplTest.kt | 1 + .../NetworkRegistrationHelperTest.kt | 2 ++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt index 3842d00097..12a2b0fc4d 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt @@ -244,6 +244,7 @@ data class NodeConfigurationImpl( errors += validateTlsCertCrlConfig() errors += validateNetworkServices() errors += validateH2Settings() + errors += validateCryptoService() return errors } @@ -268,6 +269,17 @@ data class NodeConfigurationImpl( return errors } + private fun validateCryptoService(): List { + val errors = mutableListOf() + if (cryptoServiceName == null && cryptoServiceConf != null) { + errors += "'cryptoServiceName' is mandatory when 'cryptoServiceConf' is specified" + } + if (notary != null && !(cryptoServiceName == null || cryptoServiceName == SupportedCryptoServices.BC_SIMPLE)) { + errors += "Notary node with a non supported 'cryptoServiceName' has been detected" + } + return errors + } + private fun validateRpcSettings(options: NodeRpcSettings): List { val errors = mutableListOf() if (options.adminAddress == null) { diff --git a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt index 465463d393..f9e7441d4d 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt @@ -2,12 +2,29 @@ package net.corda.node.services.config.schema.v1 import com.typesafe.config.Config import com.typesafe.config.ConfigException -import net.corda.common.configuration.parsing.internal.* +import net.corda.common.configuration.parsing.internal.Configuration +import net.corda.common.configuration.parsing.internal.get +import net.corda.common.configuration.parsing.internal.listOrEmpty +import net.corda.common.configuration.parsing.internal.map +import net.corda.common.configuration.parsing.internal.mapValid +import net.corda.common.configuration.parsing.internal.nested +import net.corda.common.configuration.parsing.internal.toValidationError import net.corda.common.validation.internal.Validated.Companion.invalid import net.corda.common.validation.internal.Validated.Companion.valid -import net.corda.node.services.config.* +import net.corda.node.services.config.JmxReporterType +import net.corda.node.services.config.NodeConfiguration +import net.corda.node.services.config.NodeConfigurationImpl import net.corda.node.services.config.NodeConfigurationImpl.Defaults -import net.corda.node.services.config.schema.parsers.* +import net.corda.node.services.config.Valid +import net.corda.node.services.config.VerifierType +import net.corda.node.services.config.schema.parsers.badValue +import net.corda.node.services.config.schema.parsers.toCordaX500Name +import net.corda.node.services.config.schema.parsers.toNetworkHostAndPort +import net.corda.node.services.config.schema.parsers.toPath +import net.corda.node.services.config.schema.parsers.toPrincipal +import net.corda.node.services.config.schema.parsers.toProperties +import net.corda.node.services.config.schema.parsers.toURL +import net.corda.node.services.config.schema.parsers.toUUID import net.corda.node.services.keys.cryptoservice.SupportedCryptoServices internal object V1NodeConfigurationSpec : Configuration.Specification("NodeConfiguration") { diff --git a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt index 2325a928ca..7e79c6da7a 100644 --- a/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/config/NodeConfigurationImplTest.kt @@ -19,6 +19,7 @@ import org.assertj.core.api.Assertions.assertThatThrownBy import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull import org.junit.Test +import java.io.File import java.net.InetAddress import java.net.URI import java.net.URL diff --git a/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt b/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt index 024a5d8346..320e499718 100644 --- a/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt +++ b/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt @@ -69,6 +69,8 @@ class NetworkRegistrationHelperTest { doReturn(null).whenever(it).tlsCertCrlDistPoint doReturn(null).whenever(it).tlsCertCrlIssuer doReturn(true).whenever(it).crlCheckSoftFail + doReturn(null).whenever(it).cryptoServiceName + doReturn(null).whenever(it).cryptoServiceConf } }