From 8461837f1a426095c7c68f8571a4003046862070 Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Sat, 2 Dec 2017 11:19:18 +0000 Subject: [PATCH 01/17] Cleaned up Driver.kt so that only the relevant bits are exposed as public API --- .../net/corda/client/rpc/RPCStabilityTests.kt | 5 +- .../net/corda/client/rpc/AbstractRPCTest.kt | 10 +- .../rpc/ClientRPCInfrastructureTests.kt | 4 +- .../corda/client/rpc/RPCConcurrencyTests.kt | 13 +- .../corda/client/rpc/RPCPerformanceTests.kt | 8 +- .../corda/client/rpc/RPCPermissionsTests.kt | 4 +- .../core/flows/ContractUpgradeFlowTest.kt | 9 +- .../net/corda/node/NodePerformanceTests.kt | 7 +- .../node/services/AttachmentLoadingTests.kt | 11 +- .../services/messaging/P2PMessagingTest.kt | 6 +- .../corda/attachmentdemo/AttachmentDemo.kt | 2 +- .../net/corda/test/spring/SpringDriver.kt | 70 +- .../net/corda/traderdemo/TraderDemoTest.kt | 2 +- .../net/corda/testing/driver/DriverTests.kt | 4 +- .../kotlin/net/corda/testing/driver/Driver.kt | 837 +----------------- .../net/corda/testing/driver/DriverDSL.kt | 92 ++ .../corda/testing/internal/DriverDSLImpl.kt | 683 ++++++++++++++ .../testing/internal/InternalTestUtils.kt | 93 ++ .../corda/testing/internal/NodeBasedTest.kt | 5 - .../net/corda/testing/internal/RPCDriver.kt | 328 +++---- .../{driver => internal}/ShutdownManager.kt | 2 +- .../testing/internal/demorun/DemoRunner.kt | 4 +- .../testing/internal/performance/Injectors.kt | 2 +- .../testing/internal/performance/Reporter.kt | 2 +- .../kotlin/net/corda/testing/X500NameUtils.kt | 29 - .../net/corda/verifier/VerifierDriver.kt | 68 +- .../corda/webserver/WebserverDriverTests.kt | 4 +- 27 files changed, 1138 insertions(+), 1166 deletions(-) create mode 100644 testing/node-driver/src/main/kotlin/net/corda/testing/driver/DriverDSL.kt create mode 100644 testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt create mode 100644 testing/node-driver/src/main/kotlin/net/corda/testing/internal/InternalTestUtils.kt rename testing/node-driver/src/main/kotlin/net/corda/testing/{driver => internal}/ShutdownManager.kt (99%) delete mode 100644 testing/test-utils/src/main/kotlin/net/corda/testing/X500NameUtils.kt diff --git a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt index 811d77a46e..a6ff6eb80d 100644 --- a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt +++ b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt @@ -13,7 +13,7 @@ import net.corda.core.utilities.* import net.corda.node.services.messaging.RPCServerConfiguration import net.corda.nodeapi.RPCApi import net.corda.testing.SerializationEnvironmentRule -import net.corda.testing.driver.poll +import net.corda.testing.internal.poll import net.corda.testing.internal.* import org.apache.activemq.artemis.api.core.SimpleString import org.junit.After @@ -231,6 +231,7 @@ class RPCStabilityTests { override val protocolVersion = 0 override fun ping() = "pong" } + val serverFollower = shutdownManager.follower() val serverPort = startRpcServer(ops = ops).getOrThrow().broker.hostAndPort!! serverFollower.unfollow() @@ -348,7 +349,7 @@ class RPCStabilityTests { } -fun RPCDriverExposedDSLInterface.pollUntilClientNumber(server: RpcServerHandle, expected: Int) { +fun RPCDriverDSL.pollUntilClientNumber(server: RpcServerHandle, expected: Int) { pollUntilTrue("number of RPC clients to become $expected") { val clientAddresses = server.broker.serverControl.addressNames.filter { it.startsWith(RPCApi.RPC_CLIENT_QUEUE_NAME_PREFIX) } clientAddresses.size == expected diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/AbstractRPCTest.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/AbstractRPCTest.kt index 546415e247..053c8b85c1 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/AbstractRPCTest.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/AbstractRPCTest.kt @@ -7,7 +7,7 @@ import net.corda.core.messaging.RPCOps import net.corda.node.services.messaging.RPCServerConfiguration import net.corda.nodeapi.internal.config.User import net.corda.testing.SerializationEnvironmentRule -import net.corda.testing.internal.RPCDriverExposedDSLInterface +import net.corda.testing.internal.RPCDriverDSL import net.corda.testing.internal.rpcTestUser import net.corda.testing.internal.startInVmRpcClient import net.corda.testing.internal.startRpcClient @@ -41,7 +41,7 @@ open class AbstractRPCTest { val createSession: () -> ClientSession ) - inline fun RPCDriverExposedDSLInterface.testProxy( + inline fun RPCDriverDSL.testProxy( ops: I, rpcUser: User = rpcTestUser, clientConfiguration: RPCClientConfiguration = RPCClientConfiguration.default, @@ -55,9 +55,9 @@ open class AbstractRPCTest { } } RPCTestMode.Netty -> - startRpcServer(ops = ops, rpcUser = rpcUser, configuration = serverConfiguration).flatMap { server -> - startRpcClient(server.broker.hostAndPort!!, rpcUser.username, rpcUser.password, clientConfiguration).map { - TestProxy(it, { startArtemisSession(server.broker.hostAndPort!!, rpcUser.username, rpcUser.password) }) + startRpcServer(ops = ops, rpcUser = rpcUser, configuration = serverConfiguration).flatMap { (broker) -> + startRpcClient(broker.hostAndPort!!, rpcUser.username, rpcUser.password, clientConfiguration).map { + TestProxy(it, { startArtemisSession(broker.hostAndPort!!, rpcUser.username, rpcUser.password) }) } } }.get() diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/ClientRPCInfrastructureTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/ClientRPCInfrastructureTests.kt index a5bf6c9b7d..eee72cf1b5 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/ClientRPCInfrastructureTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/ClientRPCInfrastructureTests.kt @@ -7,7 +7,7 @@ import net.corda.core.internal.concurrent.thenMatch import net.corda.core.messaging.RPCOps import net.corda.core.utilities.getOrThrow import net.corda.node.services.messaging.rpcContext -import net.corda.testing.internal.RPCDriverExposedDSLInterface +import net.corda.testing.internal.RPCDriverDSL import net.corda.testing.internal.rpcDriver import net.corda.testing.internal.rpcTestUser import org.assertj.core.api.Assertions.assertThat @@ -26,7 +26,7 @@ import kotlin.test.assertTrue class ClientRPCInfrastructureTests : AbstractRPCTest() { // TODO: Test that timeouts work - private fun RPCDriverExposedDSLInterface.testProxy(): TestOps { + private fun RPCDriverDSL.testProxy(): TestOps { return testProxy(TestOpsImpl()).ops } diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt index 7ba003f910..6d80a39398 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCConcurrencyTests.kt @@ -1,15 +1,15 @@ package net.corda.client.rpc import net.corda.client.rpc.internal.RPCClientConfiguration -import net.corda.core.messaging.RPCOps -import net.corda.core.utilities.millis import net.corda.core.crypto.random63BitValue import net.corda.core.internal.concurrent.fork import net.corda.core.internal.concurrent.transpose +import net.corda.core.messaging.RPCOps import net.corda.core.serialization.CordaSerializable import net.corda.core.utilities.getOrThrow +import net.corda.core.utilities.millis import net.corda.node.services.messaging.RPCServerConfiguration -import net.corda.testing.internal.RPCDriverExposedDSLInterface +import net.corda.testing.internal.RPCDriverDSL import net.corda.testing.internal.rpcDriver import net.corda.testing.internal.testThreadFactory import org.apache.activemq.artemis.utils.collections.ConcurrentHashSet @@ -20,7 +20,10 @@ import org.junit.runners.Parameterized import rx.Observable import rx.subjects.UnicastSubject import java.util.* -import java.util.concurrent.* +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.CountDownLatch +import java.util.concurrent.Executor +import java.util.concurrent.Executors @RunWith(Parameterized::class) class RPCConcurrencyTests : AbstractRPCTest() { @@ -84,7 +87,7 @@ class RPCConcurrencyTests : AbstractRPCTest() { } } - private fun RPCDriverExposedDSLInterface.testProxy(): TestProxy { + private fun RPCDriverDSL.testProxy(): TestProxy { return testProxy( TestOpsImpl(pool), clientConfiguration = RPCClientConfiguration.default.copy( diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt index ede114cf7d..90a01ec645 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt @@ -5,14 +5,14 @@ import net.corda.client.rpc.internal.RPCClientConfiguration import net.corda.core.messaging.RPCOps import net.corda.core.utilities.minutes import net.corda.core.utilities.seconds -import net.corda.testing.internal.performance.div import net.corda.node.services.messaging.RPCServerConfiguration -import net.corda.testing.internal.RPCDriverExposedDSLInterface -import net.corda.testing.measure +import net.corda.testing.internal.RPCDriverDSL +import net.corda.testing.internal.performance.div import net.corda.testing.internal.performance.startPublishingFixedRateInjector import net.corda.testing.internal.performance.startReporter import net.corda.testing.internal.performance.startTightLoopInjector import net.corda.testing.internal.rpcDriver +import net.corda.testing.measure import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith @@ -42,7 +42,7 @@ class RPCPerformanceTests : AbstractRPCTest() { } } - private fun RPCDriverExposedDSLInterface.testProxy( + private fun RPCDriverDSL.testProxy( clientConfiguration: RPCClientConfiguration, serverConfiguration: RPCServerConfiguration ): TestProxy { diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt index 6e7de32087..c7c1e71346 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt @@ -5,7 +5,7 @@ import net.corda.core.messaging.RPCOps import net.corda.node.services.Permissions.Companion.invokeRpc import net.corda.node.services.messaging.rpcContext import net.corda.nodeapi.internal.config.User -import net.corda.testing.internal.RPCDriverExposedDSLInterface +import net.corda.testing.internal.RPCDriverDSL import net.corda.testing.internal.rpcDriver import org.junit.Test import org.junit.runner.RunWith @@ -37,7 +37,7 @@ class RPCPermissionsTests : AbstractRPCTest() { /** * Create an RPC proxy for the given user. */ - private fun RPCDriverExposedDSLInterface.testProxyFor(rpcUser: User) = testProxy(TestOpsImpl(), rpcUser).ops + private fun RPCDriverDSL.testProxyFor(rpcUser: User) = testProxy(TestOpsImpl(), rpcUser).ops private fun userOf(name: String, permissions: Set) = User(name, "password", permissions) diff --git a/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt b/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt index a072d9ec34..9e51829bdc 100644 --- a/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt +++ b/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt @@ -20,14 +20,17 @@ import net.corda.node.internal.SecureCordaRPCOps import net.corda.node.internal.StartedNode import net.corda.node.services.Permissions.Companion.startFlow import net.corda.nodeapi.internal.config.User -import net.corda.testing.* +import net.corda.testing.ALICE_NAME +import net.corda.testing.BOB_NAME import net.corda.testing.contracts.DummyContract import net.corda.testing.contracts.DummyContractV2 -import net.corda.testing.internal.RPCDriverExposedDSLInterface +import net.corda.testing.internal.RPCDriverDSL import net.corda.testing.internal.rpcDriver import net.corda.testing.internal.rpcTestUser import net.corda.testing.internal.startRpcClient import net.corda.testing.node.MockNetwork +import net.corda.testing.singleIdentity +import net.corda.testing.startFlow import org.junit.After import org.junit.Before import org.junit.Test @@ -120,7 +123,7 @@ class ContractUpgradeFlowTest { check(bobNode) } - private fun RPCDriverExposedDSLInterface.startProxy(node: StartedNode<*>, user: User): CordaRPCOps { + private fun RPCDriverDSL.startProxy(node: StartedNode<*>, user: User): CordaRPCOps { return startRpcClient( rpcAddress = startRpcServer( rpcUser = user, diff --git a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt b/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt index 15abb2b06d..cc3c1e0dc8 100644 --- a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt @@ -17,11 +17,12 @@ import net.corda.nodeapi.internal.config.User import net.corda.testing.DUMMY_NOTARY import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.driver -import net.corda.testing.node.NotarySpec +import net.corda.testing.internal.InternalDriverDSL import net.corda.testing.internal.performance.div import net.corda.testing.internal.performance.startPublishingFixedRateInjector import net.corda.testing.internal.performance.startReporter import net.corda.testing.internal.performance.startTightLoopInjector +import net.corda.testing.node.NotarySpec import org.junit.Before import org.junit.Ignore import org.junit.Test @@ -91,7 +92,7 @@ class NodePerformanceTests { driver(startNodesInProcess = true) { val a = startNode(rpcUsers = listOf(User("A", "A", setOf(startFlow())))).get() a as NodeHandle.InProcess - val metricRegistry = startReporter(shutdownManager, a.node.services.monitoringService.metrics) + val metricRegistry = startReporter((this as InternalDriverDSL).shutdownManager, a.node.services.monitoringService.metrics) a.rpcClientToNode().use("A", "A") { connection -> startPublishingFixedRateInjector(metricRegistry, 8, 5.minutes, 2000L / TimeUnit.SECONDS) { connection.proxy.startFlow(::EmptyFlow).returnValue.get() @@ -109,7 +110,7 @@ class NodePerformanceTests { extraCordappPackagesToScan = listOf("net.corda.finance") ) { val notary = defaultNotaryNode.getOrThrow() as NodeHandle.InProcess - val metricRegistry = startReporter(shutdownManager, notary.node.services.monitoringService.metrics) + val metricRegistry = startReporter((this as InternalDriverDSL).shutdownManager, notary.node.services.monitoringService.metrics) notary.rpcClientToNode().use("A", "A") { connection -> println("ISSUING") val doneFutures = (1..100).toList().parallelStream().map { diff --git a/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt index 02619d2ff7..d31b79c255 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt @@ -20,13 +20,14 @@ import net.corda.core.utilities.contextLogger import net.corda.core.utilities.getOrThrow import net.corda.node.internal.cordapp.CordappLoader import net.corda.node.internal.cordapp.CordappProviderImpl -import net.corda.testing.* import net.corda.testing.DUMMY_BANK_A import net.corda.testing.DUMMY_NOTARY -import net.corda.testing.driver.DriverDSLExposedInterface +import net.corda.testing.driver.DriverDSL import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.driver import net.corda.testing.node.MockAttachmentStorage +import net.corda.testing.rigorousMock +import net.corda.testing.withTestSerialization import org.junit.Assert.assertEquals import org.junit.Test import java.net.URLClassLoader @@ -51,16 +52,16 @@ class AttachmentLoadingTests { Class.forName("net.corda.finance.contracts.isolated.IsolatedDummyFlow\$Initiator", true, URLClassLoader(arrayOf(isolatedJAR))) .asSubclass(FlowLogic::class.java) - private fun DriverDSLExposedInterface.createTwoNodes(): List { + private fun DriverDSL.createTwoNodes(): List { return listOf( startNode(providedName = bankAName), startNode(providedName = bankBName) ).transpose().getOrThrow() } - private fun DriverDSLExposedInterface.installIsolatedCordappTo(nodeName: CordaX500Name) { + private fun DriverDSL.installIsolatedCordappTo(nodeName: CordaX500Name) { // Copy the app jar to the first node. The second won't have it. - val path = (baseDirectory(nodeName.toString()) / "cordapps").createDirectories() / "isolated.jar" + val path = (baseDirectory(nodeName) / "cordapps").createDirectories() / "isolated.jar" logger.info("Installing isolated jar to $path") isolatedJAR.openStream().buffered().use { input -> Files.newOutputStream(path).buffered().use { output -> diff --git a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt index 6d480bdf87..769015bfba 100644 --- a/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt +++ b/node/src/integration-test/kotlin/net/corda/services/messaging/P2PMessagingTest.kt @@ -18,7 +18,7 @@ import net.corda.node.services.messaging.* import net.corda.node.services.transactions.RaftValidatingNotaryService import net.corda.testing.ALICE import net.corda.testing.chooseIdentity -import net.corda.testing.driver.DriverDSLExposedInterface +import net.corda.testing.driver.DriverDSL import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.driver import net.corda.testing.node.ClusterSpec @@ -116,13 +116,13 @@ class P2PMessagingTest { } } - private fun startDriverWithDistributedService(dsl: DriverDSLExposedInterface.(List>) -> Unit) { + private fun startDriverWithDistributedService(dsl: DriverDSL.(List>) -> Unit) { driver(startNodesInProcess = true, notarySpecs = listOf(NotarySpec(DISTRIBUTED_SERVICE_NAME, cluster = ClusterSpec.Raft(clusterSize = 2)))) { dsl(defaultNotaryHandle.nodeHandles.getOrThrow().map { (it as NodeHandle.InProcess).node }) } } - private fun DriverDSLExposedInterface.startAlice(): StartedNode { + private fun DriverDSL.startAlice(): StartedNode { return startNode(providedName = ALICE.name, customOverrides = mapOf("messageRedeliveryDelaySeconds" to 1)) .map { (it as NodeHandle.InProcess).node } .getOrThrow() diff --git a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt index 17313ec688..e048bc791e 100644 --- a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt +++ b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt @@ -25,7 +25,7 @@ import net.corda.core.utilities.ProgressTracker import net.corda.core.utilities.getOrThrow import net.corda.testing.DUMMY_BANK_B import net.corda.testing.DUMMY_NOTARY -import net.corda.testing.driver.poll +import net.corda.testing.internal.poll import java.io.InputStream import java.net.HttpURLConnection import java.net.URL diff --git a/samples/irs-demo/src/integration-test/kotlin/net/corda/test/spring/SpringDriver.kt b/samples/irs-demo/src/integration-test/kotlin/net/corda/test/spring/SpringDriver.kt index 4de01a0d78..692c252f7a 100644 --- a/samples/irs-demo/src/integration-test/kotlin/net/corda/test/spring/SpringDriver.kt +++ b/samples/irs-demo/src/integration-test/kotlin/net/corda/test/spring/SpringDriver.kt @@ -3,8 +3,11 @@ package net.corda.test.spring import net.corda.core.concurrent.CordaFuture import net.corda.core.internal.concurrent.map import net.corda.core.utilities.contextLogger -import net.corda.testing.driver.* -import net.corda.testing.internal.ProcessUtilities +import net.corda.testing.driver.DriverParameters +import net.corda.testing.driver.NodeHandle +import net.corda.testing.driver.PortAllocation +import net.corda.testing.driver.WebserverHandle +import net.corda.testing.internal.* import net.corda.testing.node.NotarySpec import okhttp3.OkHttpClient import okhttp3.Request @@ -14,22 +17,6 @@ import java.nio.file.Path import java.nio.file.Paths import java.util.concurrent.TimeUnit -interface SpringDriverExposedDSLInterface : DriverDSLExposedInterface { - - /** - * Starts a Spring Boot application, passes the RPC connection data as parameters the process. - * Returns future which will complete after (and if) the server passes healthcheck. - * @param clazz Class with main method which is expected to run Spring application - * @param handle Corda Node handle this webapp is expected to connect to - * @param checkUrl URL path to use for server readiness check - uses [okhttp3.Response.isSuccessful] as qualifier - * - * TODO: Rather then expecting a given clazz to contain main method which start Spring app our own simple class can do this - */ - fun startSpringBootWebapp(clazz: Class<*>, handle: NodeHandle, checkUrl: String): CordaFuture -} - -interface SpringDriverInternalDSLInterface : DriverDSLInternalInterface, SpringDriverExposedDSLInterface - fun springDriver( defaultParameters: DriverParameters = DriverParameters(), isDebug: Boolean = defaultParameters.isDebug, @@ -42,29 +29,40 @@ fun springDriver( startNodesInProcess: Boolean = defaultParameters.startNodesInProcess, notarySpecs: List, extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, - dsl: SpringDriverExposedDSLInterface.() -> A -) = genericDriver( - defaultParameters = defaultParameters, - isDebug = isDebug, - driverDirectory = driverDirectory, - portAllocation = portAllocation, - debugPortAllocation = debugPortAllocation, - systemProperties = systemProperties, - useTestClock = useTestClock, - initialiseSerialization = initialiseSerialization, - startNodesInProcess = startNodesInProcess, - extraCordappPackagesToScan = extraCordappPackagesToScan, - notarySpecs = notarySpecs, - driverDslWrapper = { driverDSL:DriverDSL -> SpringBootDriverDSL(driverDSL) }, - coerce = { it }, dsl = dsl -) + dsl: SpringBootDriverDSL.() -> A +): A { + return genericDriver( + defaultParameters = defaultParameters, + isDebug = isDebug, + driverDirectory = driverDirectory, + portAllocation = portAllocation, + debugPortAllocation = debugPortAllocation, + systemProperties = systemProperties, + useTestClock = useTestClock, + initialiseSerialization = initialiseSerialization, + startNodesInProcess = startNodesInProcess, + extraCordappPackagesToScan = extraCordappPackagesToScan, + notarySpecs = notarySpecs, + driverDslWrapper = { driverDSL: DriverDSLImpl -> SpringBootDriverDSL(driverDSL) }, + coerce = { it }, dsl = dsl + ) +} -data class SpringBootDriverDSL(private val driverDSL: DriverDSL) : DriverDSLInternalInterface by driverDSL, SpringDriverInternalDSLInterface { +data class SpringBootDriverDSL(private val driverDSL: DriverDSLImpl) : InternalDriverDSL by driverDSL { companion object { private val log = contextLogger() } - override fun startSpringBootWebapp(clazz: Class<*>, handle: NodeHandle, checkUrl: String): CordaFuture { + /** + * Starts a Spring Boot application, passes the RPC connection data as parameters the process. + * Returns future which will complete after (and if) the server passes healthcheck. + * @param clazz Class with main method which is expected to run Spring application + * @param handle Corda Node handle this webapp is expected to connect to + * @param checkUrl URL path to use for server readiness check - uses [okhttp3.Response.isSuccessful] as qualifier + * + * TODO: Rather then expecting a given clazz to contain main method which start Spring app our own simple class can do this + */ + fun startSpringBootWebapp(clazz: Class<*>, handle: NodeHandle, checkUrl: String): CordaFuture { val debugPort = if (driverDSL.isDebug) driverDSL.debugPortAllocation.nextPort() else null val process = startApplication(handle, debugPort, clazz) driverDSL.shutdownManager.registerProcessShutdown(process) diff --git a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt index a4b7285938..4283f061be 100644 --- a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt +++ b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt @@ -15,7 +15,7 @@ import net.corda.testing.DUMMY_BANK_B import net.corda.testing.chooseIdentity import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.driver -import net.corda.testing.driver.poll +import net.corda.testing.internal.poll import net.corda.traderdemo.flow.BuyerFlow import net.corda.traderdemo.flow.CommercialPaperIssueFlow import net.corda.traderdemo.flow.SellerFlow diff --git a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt index e6d581f236..37bb84424e 100644 --- a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt +++ b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt @@ -10,6 +10,8 @@ import net.corda.testing.DUMMY_BANK_A import net.corda.testing.DUMMY_NOTARY import net.corda.testing.DUMMY_REGULATOR import net.corda.testing.common.internal.ProjectStructure.projectRootDir +import net.corda.testing.internal.addressMustBeBound +import net.corda.testing.internal.addressMustNotBeBound import net.corda.testing.node.NotarySpec import org.assertj.core.api.Assertions.assertThat import org.junit.Test @@ -74,7 +76,7 @@ class DriverTests { } val baseDirectory = driver(notarySpecs = listOf(NotarySpec(DUMMY_NOTARY.name))) { - (this as DriverDSL).baseDirectory(DUMMY_NOTARY.name) + baseDirectory(DUMMY_NOTARY.name) } assertThat(baseDirectory / "process-id").doesNotExist() } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt index e46742f885..5e5cf90e9d 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt @@ -2,202 +2,35 @@ package net.corda.testing.driver -import com.google.common.util.concurrent.ThreadFactoryBuilder -import com.typesafe.config.Config -import com.typesafe.config.ConfigRenderOptions import net.corda.client.rpc.CordaRPCClient -import net.corda.cordform.CordformContext -import net.corda.cordform.CordformNode -import net.corda.core.CordaException import net.corda.core.concurrent.CordaFuture -import net.corda.core.concurrent.firstOf import net.corda.core.identity.CordaX500Name import net.corda.core.identity.Party -import net.corda.core.internal.* -import net.corda.core.internal.concurrent.* import net.corda.core.messaging.CordaRPCOps import net.corda.core.node.NodeInfo -import net.corda.core.node.services.NetworkMapCache -import net.corda.core.node.services.NotaryService -import net.corda.core.toFuture -import net.corda.core.utilities.* +import net.corda.core.utilities.NetworkHostAndPort import net.corda.node.internal.Node -import net.corda.node.internal.NodeStartup import net.corda.node.internal.StartedNode -import net.corda.node.services.Permissions.Companion.invokeRpc -import net.corda.node.services.config.* -import net.corda.node.utilities.ServiceIdentityGenerator -import net.corda.nodeapi.NodeInfoFilesCopier +import net.corda.node.services.config.NodeConfiguration +import net.corda.node.services.config.VerifierType import net.corda.nodeapi.internal.config.User -import net.corda.nodeapi.internal.config.toConfig -import net.corda.nodeapi.internal.addShutdownHook -import net.corda.testing.* +import net.corda.testing.DUMMY_NOTARY import net.corda.testing.internal.InProcessNode -import net.corda.testing.internal.ProcessUtilities -import net.corda.testing.node.ClusterSpec -import net.corda.testing.node.MockServices.Companion.MOCK_VERSION_INFO +import net.corda.testing.internal.DriverDSLImpl +import net.corda.testing.internal.genericDriver +import net.corda.testing.internal.getTimestampAsDirectoryName import net.corda.testing.node.NotarySpec -import okhttp3.OkHttpClient -import okhttp3.Request -import org.slf4j.Logger -import rx.Observable -import rx.observables.ConnectableObservable -import java.net.* +import java.net.InetSocketAddress +import java.net.ServerSocket import java.nio.file.Path import java.nio.file.Paths -import java.nio.file.StandardCopyOption.REPLACE_EXISTING -import java.time.Duration -import java.time.Instant -import java.time.ZoneOffset.UTC -import java.time.format.DateTimeFormatter -import java.util.* -import java.util.concurrent.Executors -import java.util.concurrent.ScheduledExecutorService -import java.util.concurrent.TimeUnit.MILLISECONDS -import java.util.concurrent.TimeUnit.SECONDS import java.util.concurrent.atomic.AtomicInteger -import kotlin.concurrent.thread - -/** - * This file defines a small "Driver" DSL for starting up nodes that is only intended for development, demos and tests. - * - * The process the driver is run in behaves as an Artemis client and starts up other processes. - * - * TODO this file is getting way too big, it should be split into several files. - */ -private val log: Logger = loggerFor() - -private val DEFAULT_POLL_INTERVAL = 500.millis - -private const val DEFAULT_WARN_COUNT = 120 - -/** - * A sub-set of permissions that grant most of the essential operations used in the unit/integration tests as well as - * in demo application like NodeExplorer. - */ -private val DRIVER_REQUIRED_PERMISSIONS = setOf( - invokeRpc(CordaRPCOps::nodeInfo), - invokeRpc(CordaRPCOps::networkMapFeed), - invokeRpc(CordaRPCOps::networkMapSnapshot), - invokeRpc(CordaRPCOps::notaryIdentities), - invokeRpc(CordaRPCOps::stateMachinesFeed), - invokeRpc(CordaRPCOps::stateMachineRecordedTransactionMappingFeed), - invokeRpc(CordaRPCOps::nodeInfoFromParty), - invokeRpc(CordaRPCOps::internalVerifiedTransactionsFeed), - invokeRpc("vaultQueryBy"), - invokeRpc("vaultTrackBy"), - invokeRpc(CordaRPCOps::registeredFlows) -) /** * Object ecapsulating a notary started automatically by the driver. */ data class NotaryHandle(val identity: Party, val validating: Boolean, val nodeHandles: CordaFuture>) -/** - * This is the interface that's exposed to DSL users. - */ -interface DriverDSLExposedInterface : CordformContext { - /** Returns a list of [NotaryHandle]s matching the list of [NotarySpec]s passed into [driver]. */ - val notaryHandles: List - - /** - * Returns the [NotaryHandle] for the single notary on the network. Throws if there are none or more than one. - * @see notaryHandles - */ - val defaultNotaryHandle: NotaryHandle get() { - return when (notaryHandles.size) { - 0 -> throw IllegalStateException("There are no notaries defined on the network") - 1 -> notaryHandles[0] - else -> throw IllegalStateException("There is more than one notary defined on the network") - } - } - - /** - * Returns the identity of the single notary on the network. Throws if there are none or more than one. - * @see defaultNotaryHandle - */ - val defaultNotaryIdentity: Party get() = defaultNotaryHandle.identity - - /** - * Returns a [CordaFuture] on the [NodeHandle] for the single-node notary on the network. Throws if there - * are no notaries or more than one, or if the notary is a distributed cluster. - * @see defaultNotaryHandle - * @see notaryHandles - */ - val defaultNotaryNode: CordaFuture get() { - return defaultNotaryHandle.nodeHandles.map { - it.singleOrNull() ?: throw IllegalStateException("Default notary is not a single node") - } - } - - /** - * Start a node. - * - * @param defaultParameters The default parameters for the node. Allows the node to be configured in builder style - * when called from Java code. - * @param providedName Optional name of the node, which will be its legal name in [Party]. Defaults to something - * random. Note that this must be unique as the driver uses it as a primary key! - * @param verifierType The type of transaction verifier to use. See: [VerifierType] - * @param rpcUsers List of users who are authorised to use the RPC system. Defaults to empty list. - * @param startInSameProcess Determines if the node should be started inside the same process the Driver is running - * in. If null the Driver-level value will be used. - * @return A [CordaFuture] on the [NodeHandle] to the node. The future will complete when the node is available. - */ - fun startNode( - defaultParameters: NodeParameters = NodeParameters(), - providedName: CordaX500Name? = defaultParameters.providedName, - rpcUsers: List = defaultParameters.rpcUsers, - verifierType: VerifierType = defaultParameters.verifierType, - customOverrides: Map = defaultParameters.customOverrides, - startInSameProcess: Boolean? = defaultParameters.startInSameProcess, - maximumHeapSize: String = defaultParameters.maximumHeapSize): CordaFuture - - /** - * Helper function for starting a [Node] with custom parameters from Java. - * - * @param parameters The default parameters for the driver. - * @return [NodeHandle] that will be available sometime in the future. - */ - fun startNode(parameters: NodeParameters): CordaFuture = startNode(defaultParameters = parameters) - - /** Call [startWebserver] with a default maximumHeapSize. */ - fun startWebserver(handle: NodeHandle): CordaFuture = startWebserver(handle, "200m") - - /** - * Starts a web server for a node - * @param handle The handle for the node that this webserver connects to via RPC. - * @param maximumHeapSize Argument for JVM -Xmx option e.g. "200m". - */ - fun startWebserver(handle: NodeHandle, maximumHeapSize: String): CordaFuture - - /** - * Polls a function until it returns a non-null value. Note that there is no timeout on the polling. - * - * @param pollName A description of what is being polled. - * @param pollInterval The interval of polling. - * @param warnCount The number of polls after the Driver gives a warning. - * @param check The function being polled. - * @return A future that completes with the non-null value [check] has returned. - */ - fun pollUntilNonNull(pollName: String, pollInterval: Duration = DEFAULT_POLL_INTERVAL, warnCount: Int = DEFAULT_WARN_COUNT, check: () -> A?): CordaFuture - - /** - * Polls the given function until it returns true. - * @see pollUntilNonNull - */ - fun pollUntilTrue(pollName: String, pollInterval: Duration = DEFAULT_POLL_INTERVAL, warnCount: Int = DEFAULT_WARN_COUNT, check: () -> Boolean): CordaFuture { - return pollUntilNonNull(pollName, pollInterval, warnCount) { if (check()) Unit else null } - } - - val shutdownManager: ShutdownManager -} - -interface DriverDSLInternalInterface : DriverDSLExposedInterface { - fun start() - fun shutdown() -} - sealed class NodeHandle { abstract val nodeInfo: NodeInfo /** @@ -319,9 +152,9 @@ data class NodeParameters( * @param systemProperties A Map of extra system properties which will be given to each new node. Defaults to empty. * @param useTestClock If true the test clock will be used in Node. * @param startNodesInProcess Provides the default behaviour of whether new nodes should start inside this process or - * not. Note that this may be overridden in [DriverDSLExposedInterface.startNode]. + * not. Note that this may be overridden in [DriverDSL.startNode]. * @param notarySpecs The notaries advertised for this network. These nodes will be started automatically and will be - * available from [DriverDSLExposedInterface.notaryHandles]. Defaults to a simple validating notary. + * available from [DriverDSL.notaryHandles]. Defaults to a simple validating notary. * @param dsl The dsl itself. * @return The value returned in the [dsl] closure. */ @@ -335,13 +168,13 @@ fun driver( useTestClock: Boolean = defaultParameters.useTestClock, initialiseSerialization: Boolean = defaultParameters.initialiseSerialization, startNodesInProcess: Boolean = defaultParameters.startNodesInProcess, - waitForAllNodesToFinish: Boolean = defaultParameters.waitForNodesToFinish, + waitForAllNodesToFinish: Boolean = defaultParameters.waitForAllNodesToFinish, notarySpecs: List = defaultParameters.notarySpecs, extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, - dsl: DriverDSLExposedInterface.() -> A + dsl: DriverDSL.() -> A ): A { return genericDriver( - driverDsl = DriverDSL( + driverDsl = DriverDSLImpl( portAllocation = portAllocation, debugPortAllocation = debugPortAllocation, systemProperties = systemProperties, @@ -368,7 +201,7 @@ fun driver( */ fun driver( parameters: DriverParameters, - dsl: DriverDSLExposedInterface.() -> A + dsl: DriverDSL.() -> A ): A { return driver(defaultParameters = parameters, dsl = dsl) } @@ -384,7 +217,7 @@ data class DriverParameters( val useTestClock: Boolean = false, val initialiseSerialization: Boolean = true, val startNodesInProcess: Boolean = false, - val waitForNodesToFinish: Boolean = false, + val waitForAllNodesToFinish: Boolean = false, val notarySpecs: List = listOf(NotarySpec(DUMMY_NOTARY.name)), val extraCordappPackagesToScan: List = emptyList() ) { @@ -396,643 +229,7 @@ data class DriverParameters( fun setUseTestClock(useTestClock: Boolean) = copy(useTestClock = useTestClock) fun setInitialiseSerialization(initialiseSerialization: Boolean) = copy(initialiseSerialization = initialiseSerialization) fun setStartNodesInProcess(startNodesInProcess: Boolean) = copy(startNodesInProcess = startNodesInProcess) - fun setTerminateNodesOnShutdown(terminateNodesOnShutdown: Boolean) = copy(waitForNodesToFinish = terminateNodesOnShutdown) + fun setWaitForAllNodesToFinish(waitForAllNodesToFinish: Boolean) = copy(waitForAllNodesToFinish = waitForAllNodesToFinish) fun setExtraCordappPackagesToScan(extraCordappPackagesToScan: List) = copy(extraCordappPackagesToScan = extraCordappPackagesToScan) fun setNotarySpecs(notarySpecs: List) = copy(notarySpecs = notarySpecs) } - -/** - * This is a helper method to allow extending of the DSL, along the lines of - * interface SomeOtherExposedDSLInterface : DriverDSLExposedInterface - * interface SomeOtherInternalDSLInterface : DriverDSLInternalInterface, SomeOtherExposedDSLInterface - * class SomeOtherDSL(val driverDSL : DriverDSL) : DriverDSLInternalInterface by driverDSL, SomeOtherInternalDSLInterface - * - * @param coerce We need this explicit coercion witness because we can't put an extra DI : D bound in a `where` clause. - */ -fun genericDriver( - driverDsl: D, - initialiseSerialization: Boolean = true, - coerce: (D) -> DI, - dsl: DI.() -> A -): A { - val serializationEnv = setGlobalSerialization(initialiseSerialization) - val shutdownHook = addShutdownHook(driverDsl::shutdown) - try { - driverDsl.start() - return dsl(coerce(driverDsl)) - } catch (exception: Throwable) { - log.error("Driver shutting down because of exception", exception) - throw exception - } finally { - driverDsl.shutdown() - shutdownHook.cancel() - serializationEnv.unset() - } -} - -/** - * This is a helper method to allow extending of the DSL, along the lines of - * interface SomeOtherExposedDSLInterface : DriverDSLExposedInterface - * interface SomeOtherInternalDSLInterface : DriverDSLInternalInterface, SomeOtherExposedDSLInterface - * class SomeOtherDSL(val driverDSL : DriverDSL) : DriverDSLInternalInterface by driverDSL, SomeOtherInternalDSLInterface - * - * @param coerce We need this explicit coercion witness because we can't put an extra DI : D bound in a `where` clause. - */ -fun genericDriver( - defaultParameters: DriverParameters = DriverParameters(), - isDebug: Boolean = defaultParameters.isDebug, - driverDirectory: Path = defaultParameters.driverDirectory, - portAllocation: PortAllocation = defaultParameters.portAllocation, - debugPortAllocation: PortAllocation = defaultParameters.debugPortAllocation, - systemProperties: Map = defaultParameters.systemProperties, - useTestClock: Boolean = defaultParameters.useTestClock, - initialiseSerialization: Boolean = defaultParameters.initialiseSerialization, - waitForNodesToFinish: Boolean = defaultParameters.waitForNodesToFinish, - startNodesInProcess: Boolean = defaultParameters.startNodesInProcess, - notarySpecs: List, - extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, - driverDslWrapper: (DriverDSL) -> D, - coerce: (D) -> DI, dsl: DI.() -> A -): A { - val serializationEnv = setGlobalSerialization(initialiseSerialization) - val driverDsl = driverDslWrapper( - DriverDSL( - portAllocation = portAllocation, - debugPortAllocation = debugPortAllocation, - systemProperties = systemProperties, - driverDirectory = driverDirectory.toAbsolutePath(), - useTestClock = useTestClock, - isDebug = isDebug, - startNodesInProcess = startNodesInProcess, - waitForNodesToFinish = waitForNodesToFinish, - extraCordappPackagesToScan = extraCordappPackagesToScan, - notarySpecs = notarySpecs - ) - ) - val shutdownHook = addShutdownHook(driverDsl::shutdown) - try { - driverDsl.start() - return dsl(coerce(driverDsl)) - } catch (exception: Throwable) { - log.error("Driver shutting down because of exception", exception) - throw exception - } finally { - driverDsl.shutdown() - shutdownHook.cancel() - serializationEnv.unset() - } -} - -fun getTimestampAsDirectoryName(): String { - return DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(UTC).format(Instant.now()) -} - -class ListenProcessDeathException(hostAndPort: NetworkHostAndPort, listenProcess: Process) : - CordaException("The process that was expected to listen on $hostAndPort has died with status: ${listenProcess.exitValue()}") - -/** - * @throws ListenProcessDeathException if [listenProcess] dies before the check succeeds, i.e. the check can't succeed as intended. - */ -fun addressMustBeBound(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, listenProcess: Process? = null) { - addressMustBeBoundFuture(executorService, hostAndPort, listenProcess).getOrThrow() -} - -fun addressMustBeBoundFuture(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, listenProcess: Process? = null): CordaFuture { - return poll(executorService, "address $hostAndPort to bind") { - if (listenProcess != null && !listenProcess.isAlive) { - throw ListenProcessDeathException(hostAndPort, listenProcess) - } - try { - Socket(hostAndPort.host, hostAndPort.port).close() - Unit - } catch (_exception: SocketException) { - null - } - } -} - -/* - * The default timeout value of 40 seconds have been chosen based on previous node shutdown time estimate. - * It's been observed that nodes can take up to 30 seconds to shut down, so just to stay on the safe side the 60 seconds - * timeout has been chosen. - */ -fun addressMustNotBeBound(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, timeout: Duration = 40.seconds) { - addressMustNotBeBoundFuture(executorService, hostAndPort).getOrThrow(timeout) -} - -fun addressMustNotBeBoundFuture(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort): CordaFuture { - return poll(executorService, "address $hostAndPort to unbind") { - try { - Socket(hostAndPort.host, hostAndPort.port).close() - null - } catch (_exception: SocketException) { - Unit - } - } -} - -fun poll( - executorService: ScheduledExecutorService, - pollName: String, - pollInterval: Duration = 500.millis, - warnCount: Int = 120, - check: () -> A? -): CordaFuture { - val resultFuture = openFuture() - val task = object : Runnable { - var counter = -1 - override fun run() { - if (resultFuture.isCancelled) return // Give up, caller can no longer get the result. - if (++counter == warnCount) { - log.warn("Been polling $pollName for ${(pollInterval * warnCount.toLong()).seconds} seconds...") - } - try { - val checkResult = check() - if (checkResult != null) { - resultFuture.set(checkResult) - } else { - executorService.schedule(this, pollInterval.toMillis(), MILLISECONDS) - } - } catch (t: Throwable) { - resultFuture.setException(t) - } - } - } - executorService.submit(task) // The check may be expensive, so always run it in the background even the first time. - return resultFuture -} - -class DriverDSL( - val portAllocation: PortAllocation, - val debugPortAllocation: PortAllocation, - val systemProperties: Map, - val driverDirectory: Path, - val useTestClock: Boolean, - val isDebug: Boolean, - val startNodesInProcess: Boolean, - val waitForNodesToFinish: Boolean, - extraCordappPackagesToScan: List, - val notarySpecs: List -) : DriverDSLInternalInterface { - private var _executorService: ScheduledExecutorService? = null - val executorService get() = _executorService!! - private var _shutdownManager: ShutdownManager? = null - override val shutdownManager get() = _shutdownManager!! - private val cordappPackages = extraCordappPackagesToScan + getCallerPackage() - // TODO: this object will copy NodeInfo files from started nodes to other nodes additional-node-infos/ - // This uses the FileSystem and adds a delay (~5 seconds) given by the time we wait before polling the file system. - // Investigate whether we can avoid that. - private val nodeInfoFilesCopier = NodeInfoFilesCopier() - // Map from a nodes legal name to an observable emitting the number of nodes in its network map. - private val countObservables = mutableMapOf>() - private lateinit var _notaries: List - override val notaryHandles: List get() = _notaries - - class State { - val processes = ArrayList() - } - - private val state = ThreadBox(State()) - - //TODO: remove this once we can bundle quasar properly. - private val quasarJarPath: String by lazy { - val cl = ClassLoader.getSystemClassLoader() - val urls = (cl as URLClassLoader).urLs - val quasarPattern = ".*quasar.*\\.jar$".toRegex() - val quasarFileUrl = urls.first { quasarPattern.matches(it.path) } - Paths.get(quasarFileUrl.toURI()).toString() - } - - override fun shutdown() { - if (waitForNodesToFinish) { - state.locked { - processes.forEach { it.waitFor() } - } - } - _shutdownManager?.shutdown() - _executorService?.shutdownNow() - } - - private fun establishRpc(config: NodeConfiguration, processDeathFuture: CordaFuture): CordaFuture { - val rpcAddress = config.rpcAddress!! - val client = CordaRPCClient(rpcAddress) - val connectionFuture = poll(executorService, "RPC connection") { - try { - client.start(config.rpcUsers[0].username, config.rpcUsers[0].password) - } catch (e: Exception) { - if (processDeathFuture.isDone) throw e - log.error("Exception $e, Retrying RPC connection at $rpcAddress") - null - } - } - return firstOf(connectionFuture, processDeathFuture) { - if (it == processDeathFuture) { - throw ListenProcessDeathException(rpcAddress, processDeathFuture.getOrThrow()) - } - val connection = connectionFuture.getOrThrow() - shutdownManager.registerShutdown(connection::close) - connection.proxy - } - } - - override fun startNode( - defaultParameters: NodeParameters, - providedName: CordaX500Name?, - rpcUsers: List, - verifierType: VerifierType, - customOverrides: Map, - startInSameProcess: Boolean?, - maximumHeapSize: String - ): CordaFuture { - val p2pAddress = portAllocation.nextHostAndPort() - val rpcAddress = portAllocation.nextHostAndPort() - val webAddress = portAllocation.nextHostAndPort() - // TODO: Derive name from the full picked name, don't just wrap the common name - val name = providedName ?: CordaX500Name(organisation = "${oneOf(names).organisation}-${p2pAddress.port}", locality = "London", country = "GB") - val users = rpcUsers.map { it.copy(permissions = it.permissions + DRIVER_REQUIRED_PERMISSIONS) } - val config = ConfigHelper.loadConfig( - baseDirectory = baseDirectory(name), - allowMissingConfig = true, - configOverrides = configOf( - "myLegalName" to name.toString(), - "p2pAddress" to p2pAddress.toString(), - "rpcAddress" to rpcAddress.toString(), - "webAddress" to webAddress.toString(), - "useTestClock" to useTestClock, - "rpcUsers" to if (users.isEmpty()) defaultRpcUserList else users.map { it.toConfig().root().unwrapped() }, - "verifierType" to verifierType.name - ) + customOverrides - ) - return startNodeInternal(config, webAddress, startInSameProcess, maximumHeapSize) - } - - internal fun startCordformNode(cordform: CordformNode): CordaFuture { - val name = CordaX500Name.parse(cordform.name) - // TODO We shouldn't have to allocate an RPC or web address if they're not specified. We're having to do this because of startNodeInternal - val rpcAddress = if (cordform.rpcAddress == null) mapOf("rpcAddress" to portAllocation.nextHostAndPort().toString()) else emptyMap() - val webAddress = cordform.webAddress?.let { NetworkHostAndPort.parse(it) } ?: portAllocation.nextHostAndPort() - val notary = if (cordform.notary != null) mapOf("notary" to cordform.notary) else emptyMap() - val rpcUsers = cordform.rpcUsers - val config = ConfigHelper.loadConfig( - baseDirectory = baseDirectory(name), - allowMissingConfig = true, - configOverrides = cordform.config + rpcAddress + notary + mapOf( - "rpcUsers" to if (rpcUsers.isEmpty()) defaultRpcUserList else rpcUsers - ) - ) - return startNodeInternal(config, webAddress, null, "200m") - } - - private fun queryWebserver(handle: NodeHandle, process: Process): WebserverHandle { - val protocol = if (handle.configuration.useHTTPS) "https://" else "http://" - val url = URL("$protocol${handle.webAddress}/api/status") - val client = OkHttpClient.Builder().connectTimeout(5, SECONDS).readTimeout(60, SECONDS).build() - - while (process.isAlive) try { - val response = client.newCall(Request.Builder().url(url).build()).execute() - if (response.isSuccessful && (response.body().string() == "started")) { - return WebserverHandle(handle.webAddress, process) - } - } catch (e: ConnectException) { - log.debug("Retrying webserver info at ${handle.webAddress}") - } - - throw IllegalStateException("Webserver at ${handle.webAddress} has died") - } - - override fun startWebserver(handle: NodeHandle, maximumHeapSize: String): CordaFuture { - val debugPort = if (isDebug) debugPortAllocation.nextPort() else null - val process = DriverDSL.startWebserver(handle, debugPort, maximumHeapSize) - shutdownManager.registerProcessShutdown(process) - val webReadyFuture = addressMustBeBoundFuture(executorService, handle.webAddress, process) - return webReadyFuture.map { queryWebserver(handle, process) } - } - - override fun start() { - _executorService = Executors.newScheduledThreadPool(2, ThreadFactoryBuilder().setNameFormat("driver-pool-thread-%d").build()) - _shutdownManager = ShutdownManager(executorService) - shutdownManager.registerShutdown { nodeInfoFilesCopier.close() } - val notaryInfos = generateNotaryIdentities() - val nodeHandles = startNotaries() - _notaries = notaryInfos.zip(nodeHandles) { (identity, validating), nodes -> NotaryHandle(identity, validating, nodes) } - } - - private fun generateNotaryIdentities(): List> { - return notarySpecs.map { spec -> - val identity = if (spec.cluster == null) { - ServiceIdentityGenerator.generateToDisk( - dirs = listOf(baseDirectory(spec.name)), - serviceName = spec.name.copy(commonName = NotaryService.constructId(validating = spec.validating)) - ) - } else { - ServiceIdentityGenerator.generateToDisk( - dirs = generateNodeNames(spec).map { baseDirectory(it) }, - serviceName = spec.name - ) - } - Pair(identity, spec.validating) - } - } - - private fun generateNodeNames(spec: NotarySpec): List { - return (0 until spec.cluster!!.clusterSize).map { spec.name.copy(commonName = null, organisation = "${spec.name.organisation}-$it") } - } - - private fun startNotaries(): List>> { - return notarySpecs.map { - when { - it.cluster == null -> startSingleNotary(it) - it.cluster is ClusterSpec.Raft -> startRaftNotaryCluster(it) - else -> throw IllegalArgumentException("BFT-SMaRt not supported") - } - } - } - - // TODO This mapping is done is several places including the gradle plugin. In general we need a better way of - // generating the configs for the nodes, probably making use of Any.toConfig() - private fun NotaryConfig.toConfigMap(): Map = mapOf("notary" to toConfig().root().unwrapped()) - - private fun startSingleNotary(spec: NotarySpec): CordaFuture> { - return startNode( - providedName = spec.name, - rpcUsers = spec.rpcUsers, - verifierType = spec.verifierType, - customOverrides = NotaryConfig(spec.validating).toConfigMap() - ).map { listOf(it) } - } - - private fun startRaftNotaryCluster(spec: NotarySpec): CordaFuture> { - fun notaryConfig(nodeAddress: NetworkHostAndPort, clusterAddress: NetworkHostAndPort? = null): Map { - val clusterAddresses = if (clusterAddress != null) listOf(clusterAddress) else emptyList() - val config = NotaryConfig( - validating = spec.validating, - raft = RaftConfig(nodeAddress = nodeAddress, clusterAddresses = clusterAddresses)) - return config.toConfigMap() - } - - val nodeNames = generateNodeNames(spec) - val clusterAddress = portAllocation.nextHostAndPort() - - // Start the first node that will bootstrap the cluster - val firstNodeFuture = startNode( - providedName = nodeNames[0], - rpcUsers = spec.rpcUsers, - verifierType = spec.verifierType, - customOverrides = notaryConfig(clusterAddress) + mapOf( - "database.serverNameTablePrefix" to nodeNames[0].toString().replace(Regex("[^0-9A-Za-z]+"), "") - ) - ) - - // All other nodes will join the cluster - val restNodeFutures = nodeNames.drop(1).map { - val nodeAddress = portAllocation.nextHostAndPort() - startNode( - providedName = it, - rpcUsers = spec.rpcUsers, - verifierType = spec.verifierType, - customOverrides = notaryConfig(nodeAddress, clusterAddress) + mapOf( - "database.serverNameTablePrefix" to it.toString().replace(Regex("[^0-9A-Za-z]+"), "") - ) - ) - } - - return firstNodeFuture.flatMap { first -> - restNodeFutures.transpose().map { rest -> listOf(first) + rest } - } - } - - fun baseDirectory(nodeName: CordaX500Name): Path { - val nodeDirectoryName = nodeName.organisation.filter { !it.isWhitespace() } - return driverDirectory / nodeDirectoryName - } - - override fun baseDirectory(nodeName: String): Path = baseDirectory(CordaX500Name.parse(nodeName)) - - /** - * @param initial number of nodes currently in the network map of a running node. - * @param networkMapCacheChangeObservable an observable returning the updates to the node network map. - * @return a [ConnectableObservable] which emits a new [Int] every time the number of registered nodes changes - * the initial value emitted is always [initial] - */ - private fun nodeCountObservable(initial: Int, networkMapCacheChangeObservable: Observable): - ConnectableObservable { - val count = AtomicInteger(initial) - return networkMapCacheChangeObservable.map { it -> - when (it) { - is NetworkMapCache.MapChange.Added -> count.incrementAndGet() - is NetworkMapCache.MapChange.Removed -> count.decrementAndGet() - is NetworkMapCache.MapChange.Modified -> count.get() - } - }.startWith(initial).replay() - } - - /** - * @param rpc the [CordaRPCOps] of a newly started node. - * @return a [CordaFuture] which resolves when every node started by driver has in its network map a number of nodes - * equal to the number of running nodes. The future will yield the number of connected nodes. - */ - private fun allNodesConnected(rpc: CordaRPCOps): CordaFuture { - val (snapshot, updates) = rpc.networkMapFeed() - val counterObservable = nodeCountObservable(snapshot.size, updates) - countObservables[rpc.nodeInfo().legalIdentities[0].name] = counterObservable - /* TODO: this might not always be the exact number of nodes one has to wait for, - * for example in the following sequence - * 1 start 3 nodes in order, A, B, C. - * 2 before the future returned by this function resolves, kill B - * At that point this future won't ever resolve as it will wait for nodes to know 3 other nodes. - */ - val requiredNodes = countObservables.size - - // This is an observable which yield the minimum number of nodes in each node network map. - val smallestSeenNetworkMapSize = Observable.combineLatest(countObservables.values.toList()) { args: Array -> - args.map { it as Int }.min() ?: 0 - } - val future = smallestSeenNetworkMapSize.filter { it >= requiredNodes }.toFuture() - counterObservable.connect() - return future - } - - private fun startNodeInternal(config: Config, - webAddress: NetworkHostAndPort, - startInProcess: Boolean?, - maximumHeapSize: String): CordaFuture { - val configuration = config.parseAsNodeConfiguration() - val baseDirectory = configuration.baseDirectory.createDirectories() - nodeInfoFilesCopier.addConfig(baseDirectory) - val onNodeExit: () -> Unit = { - nodeInfoFilesCopier.removeConfig(baseDirectory) - countObservables.remove(configuration.myLegalName) - } - if (startInProcess ?: startNodesInProcess) { - val nodeAndThreadFuture = startInProcessNode(executorService, configuration, config, cordappPackages) - shutdownManager.registerShutdown( - nodeAndThreadFuture.map { (node, thread) -> - { - node.dispose() - thread.interrupt() - } - } - ) - return nodeAndThreadFuture.flatMap { (node, thread) -> - establishRpc(configuration, openFuture()).flatMap { rpc -> - allNodesConnected(rpc).map { - NodeHandle.InProcess(rpc.nodeInfo(), rpc, configuration, webAddress, node, thread, onNodeExit) - } - } - } - } else { - val debugPort = if (isDebug) debugPortAllocation.nextPort() else null - val process = startOutOfProcessNode(configuration, config, quasarJarPath, debugPort, systemProperties, cordappPackages, maximumHeapSize) - if (waitForNodesToFinish) { - state.locked { - processes += process - } - } else { - shutdownManager.registerProcessShutdown(process) - } - val p2pReadyFuture = addressMustBeBoundFuture(executorService, configuration.p2pAddress, process) - return p2pReadyFuture.flatMap { - val processDeathFuture = poll(executorService, "process death") { - if (process.isAlive) null else process - } - establishRpc(configuration, processDeathFuture).flatMap { rpc -> - // Check for all nodes to have all other nodes in background in case RPC is failing over: - val networkMapFuture = executorService.fork { allNodesConnected(rpc) }.flatMap { it } - firstOf(processDeathFuture, networkMapFuture) { - if (it == processDeathFuture) { - throw ListenProcessDeathException(configuration.p2pAddress, process) - } - processDeathFuture.cancel(false) - log.info("Node handle is ready. NodeInfo: ${rpc.nodeInfo()}, WebAddress: $webAddress") - NodeHandle.OutOfProcess(rpc.nodeInfo(), rpc, configuration, webAddress, debugPort, process, - onNodeExit) - } - } - } - } - } - - override fun pollUntilNonNull(pollName: String, pollInterval: Duration, warnCount: Int, check: () -> A?): CordaFuture { - val pollFuture = poll(executorService, pollName, pollInterval, warnCount, check) - shutdownManager.registerShutdown { pollFuture.cancel(true) } - return pollFuture - } - - companion object { - private val defaultRpcUserList = listOf(User("default", "default", setOf("ALL")).toConfig().root().unwrapped()) - - private val names = arrayOf( - ALICE.name, - BOB.name, - DUMMY_BANK_A.name - ) - - private fun oneOf(array: Array) = array[Random().nextInt(array.size)] - - private fun startInProcessNode( - executorService: ScheduledExecutorService, - nodeConf: NodeConfiguration, - config: Config, - cordappPackages: List - ): CordaFuture, Thread>> { - return executorService.fork { - log.info("Starting in-process Node ${nodeConf.myLegalName.organisation}") - // Write node.conf - writeConfig(nodeConf.baseDirectory, "node.conf", config) - // TODO pass the version in? - val node = InProcessNode(nodeConf, MOCK_VERSION_INFO, cordappPackages).start() - val nodeThread = thread(name = nodeConf.myLegalName.organisation) { - node.internals.run() - } - node to nodeThread - }.flatMap { - nodeAndThread -> addressMustBeBoundFuture(executorService, nodeConf.p2pAddress).map { nodeAndThread } - } - } - - private fun startOutOfProcessNode( - nodeConf: NodeConfiguration, - config: Config, - quasarJarPath: String, - debugPort: Int?, - overriddenSystemProperties: Map, - cordappPackages: List, - maximumHeapSize: String - ): Process { - log.info("Starting out-of-process Node ${nodeConf.myLegalName.organisation}, debug port is " + (debugPort ?: "not enabled")) - // Write node.conf - writeConfig(nodeConf.baseDirectory, "node.conf", config) - - val systemProperties = overriddenSystemProperties + mapOf( - "name" to nodeConf.myLegalName, - "visualvm.display.name" to "corda-${nodeConf.myLegalName}", - Node.scanPackagesSystemProperty to cordappPackages.joinToString(Node.scanPackagesSeparator), - "java.io.tmpdir" to System.getProperty("java.io.tmpdir"), // Inherit from parent process - "log4j2.debug" to if(debugPort != null) "true" else "false" - ) - // See experimental/quasar-hook/README.md for how to generate. - val excludePattern = "x(antlr**;bftsmart**;ch**;co.paralleluniverse**;com.codahale**;com.esotericsoftware**;" + - "com.fasterxml**;com.google**;com.ibm**;com.intellij**;com.jcabi**;com.nhaarman**;com.opengamma**;" + - "com.typesafe**;com.zaxxer**;de.javakaffee**;groovy**;groovyjarjarantlr**;groovyjarjarasm**;io.atomix**;" + - "io.github**;io.netty**;jdk**;joptsimple**;junit**;kotlin**;net.bytebuddy**;net.i2p**;org.apache**;" + - "org.assertj**;org.bouncycastle**;org.codehaus**;org.crsh**;org.dom4j**;org.fusesource**;org.h2**;" + - "org.hamcrest**;org.hibernate**;org.jboss**;org.jcp**;org.joda**;org.junit**;org.mockito**;org.objectweb**;" + - "org.objenesis**;org.slf4j**;org.w3c**;org.xml**;org.yaml**;reflectasm**;rx**)" - val extraJvmArguments = systemProperties.removeResolvedClasspath().map { "-D${it.key}=${it.value}" } + - "-javaagent:$quasarJarPath=$excludePattern" - val loggingLevel = if (debugPort == null) "INFO" else "DEBUG" - - return ProcessUtilities.startCordaProcess( - className = "net.corda.node.Corda", // cannot directly get class for this, so just use string - arguments = listOf( - "--base-directory=${nodeConf.baseDirectory}", - "--logging-level=$loggingLevel", - "--no-local-shell" - ), - jdwpPort = debugPort, - extraJvmArguments = extraJvmArguments, - errorLogPath = nodeConf.baseDirectory / NodeStartup.LOGS_DIRECTORY_NAME / "error.log", - workingDirectory = nodeConf.baseDirectory, - maximumHeapSize = maximumHeapSize - ) - } - - private fun startWebserver(handle: NodeHandle, debugPort: Int?, maximumHeapSize: String): Process { - val className = "net.corda.webserver.WebServer" - return ProcessUtilities.startCordaProcess( - className = className, // cannot directly get class for this, so just use string - arguments = listOf("--base-directory", handle.configuration.baseDirectory.toString()), - jdwpPort = debugPort, - extraJvmArguments = listOf( - "-Dname=node-${handle.configuration.p2pAddress}-webserver", - "-Djava.io.tmpdir=${System.getProperty("java.io.tmpdir")}" // Inherit from parent process - ), - errorLogPath = Paths.get("error.$className.log"), - workingDirectory = null, - maximumHeapSize = maximumHeapSize - ) - } - - private fun getCallerPackage(): String { - return Exception() - .stackTrace - .first { it.fileName != "Driver.kt" } - .let { Class.forName(it.className).`package`?.name } - ?: throw IllegalStateException("Function instantiating driver must be defined in a package.") - } - - /** - * We have an alternative way of specifying classpath for spawned process: by using "-cp" option. So duplicating the setting of this - * rather long string is un-necessary and can be harmful on Windows. - */ - private fun Map.removeResolvedClasspath(): Map { - return filterNot { it.key == "java.class.path" } - } - } -} - -fun writeConfig(path: Path, filename: String, config: Config) { - val configString = config.root().render(ConfigRenderOptions.defaults()) - configString.byteInputStream().copyTo(path / filename, REPLACE_EXISTING) -} - diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/DriverDSL.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/DriverDSL.kt new file mode 100644 index 0000000000..42a394b51d --- /dev/null +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/DriverDSL.kt @@ -0,0 +1,92 @@ +package net.corda.testing.driver + +import net.corda.core.concurrent.CordaFuture +import net.corda.core.identity.CordaX500Name +import net.corda.core.identity.Party +import net.corda.core.internal.concurrent.map +import net.corda.node.internal.Node +import net.corda.node.services.config.VerifierType +import net.corda.nodeapi.internal.config.User +import net.corda.testing.node.NotarySpec +import java.nio.file.Path + +interface DriverDSL { + /** Returns a list of [NotaryHandle]s matching the list of [NotarySpec]s passed into [driver]. */ + val notaryHandles: List + + /** + * Returns the [NotaryHandle] for the single notary on the network. Throws if there are none or more than one. + * @see notaryHandles + */ + val defaultNotaryHandle: NotaryHandle get() { + return when (notaryHandles.size) { + 0 -> throw IllegalStateException("There are no notaries defined on the network") + 1 -> notaryHandles[0] + else -> throw IllegalStateException("There is more than one notary defined on the network") + } + } + + /** + * Returns the identity of the single notary on the network. Throws if there are none or more than one. + * @see defaultNotaryHandle + */ + val defaultNotaryIdentity: Party get() = defaultNotaryHandle.identity + + /** + * Returns a [CordaFuture] on the [NodeHandle] for the single-node notary on the network. Throws if there + * are no notaries or more than one, or if the notary is a distributed cluster. + * @see defaultNotaryHandle + * @see notaryHandles + */ + val defaultNotaryNode: CordaFuture get() { + return defaultNotaryHandle.nodeHandles.map { + it.singleOrNull() ?: throw IllegalStateException("Default notary is not a single node") + } + } + + /** + * Start a node. + * + * @param defaultParameters The default parameters for the node. Allows the node to be configured in builder style + * when called from Java code. + * @param providedName Optional name of the node, which will be its legal name in [Party]. Defaults to something + * random. Note that this must be unique as the driver uses it as a primary key! + * @param verifierType The type of transaction verifier to use. See: [VerifierType] + * @param rpcUsers List of users who are authorised to use the RPC system. Defaults to empty list. + * @param startInSameProcess Determines if the node should be started inside the same process the Driver is running + * in. If null the Driver-level value will be used. + * @return A [CordaFuture] on the [NodeHandle] to the node. The future will complete when the node is available. + */ + fun startNode( + defaultParameters: NodeParameters = NodeParameters(), + providedName: CordaX500Name? = defaultParameters.providedName, + rpcUsers: List = defaultParameters.rpcUsers, + verifierType: VerifierType = defaultParameters.verifierType, + customOverrides: Map = defaultParameters.customOverrides, + startInSameProcess: Boolean? = defaultParameters.startInSameProcess, + maximumHeapSize: String = defaultParameters.maximumHeapSize): CordaFuture + + /** + * Helper function for starting a [Node] with custom parameters from Java. + * + * @param parameters The default parameters for the driver. + * @return [NodeHandle] that will be available sometime in the future. + */ + fun startNode(parameters: NodeParameters): CordaFuture = startNode(defaultParameters = parameters) + + /** Call [startWebserver] with a default maximumHeapSize. */ + fun startWebserver(handle: NodeHandle): CordaFuture = startWebserver(handle, "200m") + + /** + * Starts a web server for a node + * @param handle The handle for the node that this webserver connects to via RPC. + * @param maximumHeapSize Argument for JVM -Xmx option e.g. "200m". + */ + fun startWebserver(handle: NodeHandle, maximumHeapSize: String): CordaFuture + + /** + * Returns the base directory for a node with the given [CordaX500Name]. This method is useful if the base directory + * is needed before the node is started. + */ + fun baseDirectory(nodeName: CordaX500Name): Path +} diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt new file mode 100644 index 0000000000..b2fe9a1070 --- /dev/null +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt @@ -0,0 +1,683 @@ +package net.corda.testing.internal + +import com.google.common.util.concurrent.ThreadFactoryBuilder +import com.typesafe.config.Config +import com.typesafe.config.ConfigRenderOptions +import net.corda.client.rpc.CordaRPCClient +import net.corda.cordform.CordformContext +import net.corda.cordform.CordformNode +import net.corda.core.concurrent.CordaFuture +import net.corda.core.concurrent.firstOf +import net.corda.core.identity.CordaX500Name +import net.corda.core.identity.Party +import net.corda.core.internal.ThreadBox +import net.corda.core.internal.concurrent.* +import net.corda.core.internal.copyTo +import net.corda.core.internal.createDirectories +import net.corda.core.internal.div +import net.corda.core.messaging.CordaRPCOps +import net.corda.core.node.services.NetworkMapCache +import net.corda.core.node.services.NotaryService +import net.corda.core.toFuture +import net.corda.core.utilities.NetworkHostAndPort +import net.corda.core.utilities.contextLogger +import net.corda.core.utilities.getOrThrow +import net.corda.core.utilities.millis +import net.corda.node.internal.Node +import net.corda.node.internal.NodeStartup +import net.corda.node.internal.StartedNode +import net.corda.node.services.Permissions +import net.corda.node.services.config.* +import net.corda.node.utilities.ServiceIdentityGenerator +import net.corda.nodeapi.NodeInfoFilesCopier +import net.corda.nodeapi.internal.addShutdownHook +import net.corda.nodeapi.internal.config.User +import net.corda.nodeapi.internal.config.toConfig +import net.corda.testing.ALICE +import net.corda.testing.BOB +import net.corda.testing.DUMMY_BANK_A +import net.corda.testing.driver.* +import net.corda.testing.node.ClusterSpec +import net.corda.testing.node.MockServices.Companion.MOCK_VERSION_INFO +import net.corda.testing.node.NotarySpec +import net.corda.testing.setGlobalSerialization +import okhttp3.OkHttpClient +import okhttp3.Request +import rx.Observable +import rx.observables.ConnectableObservable +import java.net.ConnectException +import java.net.URL +import java.net.URLClassLoader +import java.nio.file.Path +import java.nio.file.Paths +import java.nio.file.StandardCopyOption +import java.time.Duration +import java.time.Instant +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter +import java.util.* +import java.util.concurrent.Executors +import java.util.concurrent.ScheduledExecutorService +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicInteger +import kotlin.concurrent.thread + +class DriverDSLImpl( + val portAllocation: PortAllocation, + val debugPortAllocation: PortAllocation, + val systemProperties: Map, + val driverDirectory: Path, + val useTestClock: Boolean, + val isDebug: Boolean, + val startNodesInProcess: Boolean, + val waitForNodesToFinish: Boolean, + extraCordappPackagesToScan: List, + val notarySpecs: List +) : InternalDriverDSL { + private var _executorService: ScheduledExecutorService? = null + val executorService get() = _executorService!! + private var _shutdownManager: ShutdownManager? = null + override val shutdownManager get() = _shutdownManager!! + private val cordappPackages = extraCordappPackagesToScan + getCallerPackage() + // TODO: this object will copy NodeInfo files from started nodes to other nodes additional-node-infos/ + // This uses the FileSystem and adds a delay (~5 seconds) given by the time we wait before polling the file system. + // Investigate whether we can avoid that. + private val nodeInfoFilesCopier = NodeInfoFilesCopier() + // Map from a nodes legal name to an observable emitting the number of nodes in its network map. + private val countObservables = mutableMapOf>() + private lateinit var _notaries: List + override val notaryHandles: List get() = _notaries + + class State { + val processes = ArrayList() + } + + private val state = ThreadBox(State()) + + //TODO: remove this once we can bundle quasar properly. + private val quasarJarPath: String by lazy { + val cl = ClassLoader.getSystemClassLoader() + val urls = (cl as URLClassLoader).urLs + val quasarPattern = ".*quasar.*\\.jar$".toRegex() + val quasarFileUrl = urls.first { quasarPattern.matches(it.path) } + Paths.get(quasarFileUrl.toURI()).toString() + } + + override fun shutdown() { + if (waitForNodesToFinish) { + state.locked { + processes.forEach { it.waitFor() } + } + } + _shutdownManager?.shutdown() + _executorService?.shutdownNow() + } + + private fun establishRpc(config: NodeConfiguration, processDeathFuture: CordaFuture): CordaFuture { + val rpcAddress = config.rpcAddress!! + val client = CordaRPCClient(rpcAddress) + val connectionFuture = poll(executorService, "RPC connection") { + try { + client.start(config.rpcUsers[0].username, config.rpcUsers[0].password) + } catch (e: Exception) { + if (processDeathFuture.isDone) throw e + log.error("Exception $e, Retrying RPC connection at $rpcAddress") + null + } + } + return firstOf(connectionFuture, processDeathFuture) { + if (it == processDeathFuture) { + throw ListenProcessDeathException(rpcAddress, processDeathFuture.getOrThrow()) + } + val connection = connectionFuture.getOrThrow() + shutdownManager.registerShutdown(connection::close) + connection.proxy + } + } + + override fun startNode( + defaultParameters: NodeParameters, + providedName: CordaX500Name?, + rpcUsers: List, + verifierType: VerifierType, + customOverrides: Map, + startInSameProcess: Boolean?, + maximumHeapSize: String + ): CordaFuture { + val p2pAddress = portAllocation.nextHostAndPort() + val rpcAddress = portAllocation.nextHostAndPort() + val webAddress = portAllocation.nextHostAndPort() + // TODO: Derive name from the full picked name, don't just wrap the common name + val name = providedName ?: CordaX500Name(organisation = "${oneOf(names).organisation}-${p2pAddress.port}", locality = "London", country = "GB") + val users = rpcUsers.map { it.copy(permissions = it.permissions + DRIVER_REQUIRED_PERMISSIONS) } + val config = ConfigHelper.loadConfig( + baseDirectory = baseDirectory(name), + allowMissingConfig = true, + configOverrides = configOf( + "myLegalName" to name.toString(), + "p2pAddress" to p2pAddress.toString(), + "rpcAddress" to rpcAddress.toString(), + "webAddress" to webAddress.toString(), + "useTestClock" to useTestClock, + "rpcUsers" to if (users.isEmpty()) defaultRpcUserList else users.map { it.toConfig().root().unwrapped() }, + "verifierType" to verifierType.name + ) + customOverrides + ) + return startNodeInternal(config, webAddress, startInSameProcess, maximumHeapSize) + } + + internal fun startCordformNode(cordform: CordformNode): CordaFuture { + val name = CordaX500Name.parse(cordform.name) + // TODO We shouldn't have to allocate an RPC or web address if they're not specified. We're having to do this because of startNodeInternal + val rpcAddress = if (cordform.rpcAddress == null) mapOf("rpcAddress" to portAllocation.nextHostAndPort().toString()) else emptyMap() + val webAddress = cordform.webAddress?.let { NetworkHostAndPort.parse(it) } ?: portAllocation.nextHostAndPort() + val notary = if (cordform.notary != null) mapOf("notary" to cordform.notary) else emptyMap() + val rpcUsers = cordform.rpcUsers + val config = ConfigHelper.loadConfig( + baseDirectory = baseDirectory(name), + allowMissingConfig = true, + configOverrides = cordform.config + rpcAddress + notary + mapOf( + "rpcUsers" to if (rpcUsers.isEmpty()) defaultRpcUserList else rpcUsers + ) + ) + return startNodeInternal(config, webAddress, null, "200m") + } + + private fun queryWebserver(handle: NodeHandle, process: Process): WebserverHandle { + val protocol = if (handle.configuration.useHTTPS) "https://" else "http://" + val url = URL("$protocol${handle.webAddress}/api/status") + val client = OkHttpClient.Builder().connectTimeout(5, TimeUnit.SECONDS).readTimeout(60, TimeUnit.SECONDS).build() + + while (process.isAlive) try { + val response = client.newCall(Request.Builder().url(url).build()).execute() + if (response.isSuccessful && (response.body().string() == "started")) { + return WebserverHandle(handle.webAddress, process) + } + } catch (e: ConnectException) { + log.debug("Retrying webserver info at ${handle.webAddress}") + } + + throw IllegalStateException("Webserver at ${handle.webAddress} has died") + } + + override fun startWebserver(handle: NodeHandle, maximumHeapSize: String): CordaFuture { + val debugPort = if (isDebug) debugPortAllocation.nextPort() else null + val process = startWebserver(handle, debugPort, maximumHeapSize) + shutdownManager.registerProcessShutdown(process) + val webReadyFuture = addressMustBeBoundFuture(executorService, handle.webAddress, process) + return webReadyFuture.map { queryWebserver(handle, process) } + } + + override fun start() { + _executorService = Executors.newScheduledThreadPool(2, ThreadFactoryBuilder().setNameFormat("driver-pool-thread-%d").build()) + _shutdownManager = ShutdownManager(executorService) + shutdownManager.registerShutdown { nodeInfoFilesCopier.close() } + val notaryInfos = generateNotaryIdentities() + val nodeHandles = startNotaries() + _notaries = notaryInfos.zip(nodeHandles) { (identity, validating), nodes -> NotaryHandle(identity, validating, nodes) } + } + + private fun generateNotaryIdentities(): List> { + return notarySpecs.map { spec -> + val identity = if (spec.cluster == null) { + ServiceIdentityGenerator.generateToDisk( + dirs = listOf(baseDirectory(spec.name)), + serviceName = spec.name.copy(commonName = NotaryService.constructId(validating = spec.validating)) + ) + } else { + ServiceIdentityGenerator.generateToDisk( + dirs = generateNodeNames(spec).map { baseDirectory(it) }, + serviceName = spec.name + ) + } + Pair(identity, spec.validating) + } + } + + private fun generateNodeNames(spec: NotarySpec): List { + return (0 until spec.cluster!!.clusterSize).map { spec.name.copy(commonName = null, organisation = "${spec.name.organisation}-$it") } + } + + private fun startNotaries(): List>> { + return notarySpecs.map { + when { + it.cluster == null -> startSingleNotary(it) + it.cluster is ClusterSpec.Raft -> startRaftNotaryCluster(it) + else -> throw IllegalArgumentException("BFT-SMaRt not supported") + } + } + } + + // TODO This mapping is done is several places including the gradle plugin. In general we need a better way of + // generating the configs for the nodes, probably making use of Any.toConfig() + private fun NotaryConfig.toConfigMap(): Map = mapOf("notary" to toConfig().root().unwrapped()) + + private fun startSingleNotary(spec: NotarySpec): CordaFuture> { + return startNode( + providedName = spec.name, + rpcUsers = spec.rpcUsers, + verifierType = spec.verifierType, + customOverrides = NotaryConfig(spec.validating).toConfigMap() + ).map { listOf(it) } + } + + private fun startRaftNotaryCluster(spec: NotarySpec): CordaFuture> { + fun notaryConfig(nodeAddress: NetworkHostAndPort, clusterAddress: NetworkHostAndPort? = null): Map { + val clusterAddresses = if (clusterAddress != null) listOf(clusterAddress) else emptyList() + val config = NotaryConfig( + validating = spec.validating, + raft = RaftConfig(nodeAddress = nodeAddress, clusterAddresses = clusterAddresses)) + return config.toConfigMap() + } + + val nodeNames = generateNodeNames(spec) + val clusterAddress = portAllocation.nextHostAndPort() + + // Start the first node that will bootstrap the cluster + val firstNodeFuture = startNode( + providedName = nodeNames[0], + rpcUsers = spec.rpcUsers, + verifierType = spec.verifierType, + customOverrides = notaryConfig(clusterAddress) + mapOf( + "database.serverNameTablePrefix" to nodeNames[0].toString().replace(Regex("[^0-9A-Za-z]+"), "") + ) + ) + + // All other nodes will join the cluster + val restNodeFutures = nodeNames.drop(1).map { + val nodeAddress = portAllocation.nextHostAndPort() + startNode( + providedName = it, + rpcUsers = spec.rpcUsers, + verifierType = spec.verifierType, + customOverrides = notaryConfig(nodeAddress, clusterAddress) + mapOf( + "database.serverNameTablePrefix" to it.toString().replace(Regex("[^0-9A-Za-z]+"), "") + ) + ) + } + + return firstNodeFuture.flatMap { first -> + restNodeFutures.transpose().map { rest -> listOf(first) + rest } + } + } + + override fun baseDirectory(nodeName: CordaX500Name): Path { + val nodeDirectoryName = nodeName.organisation.filter { !it.isWhitespace() } + return driverDirectory / nodeDirectoryName + } + + /** + * @param initial number of nodes currently in the network map of a running node. + * @param networkMapCacheChangeObservable an observable returning the updates to the node network map. + * @return a [ConnectableObservable] which emits a new [Int] every time the number of registered nodes changes + * the initial value emitted is always [initial] + */ + private fun nodeCountObservable(initial: Int, networkMapCacheChangeObservable: Observable): + ConnectableObservable { + val count = AtomicInteger(initial) + return networkMapCacheChangeObservable.map { it -> + when (it) { + is NetworkMapCache.MapChange.Added -> count.incrementAndGet() + is NetworkMapCache.MapChange.Removed -> count.decrementAndGet() + is NetworkMapCache.MapChange.Modified -> count.get() + } + }.startWith(initial).replay() + } + + /** + * @param rpc the [CordaRPCOps] of a newly started node. + * @return a [CordaFuture] which resolves when every node started by driver has in its network map a number of nodes + * equal to the number of running nodes. The future will yield the number of connected nodes. + */ + private fun allNodesConnected(rpc: CordaRPCOps): CordaFuture { + val (snapshot, updates) = rpc.networkMapFeed() + val counterObservable = nodeCountObservable(snapshot.size, updates) + countObservables[rpc.nodeInfo().legalIdentities[0].name] = counterObservable + /* TODO: this might not always be the exact number of nodes one has to wait for, + * for example in the following sequence + * 1 start 3 nodes in order, A, B, C. + * 2 before the future returned by this function resolves, kill B + * At that point this future won't ever resolve as it will wait for nodes to know 3 other nodes. + */ + val requiredNodes = countObservables.size + + // This is an observable which yield the minimum number of nodes in each node network map. + val smallestSeenNetworkMapSize = Observable.combineLatest(countObservables.values.toList()) { args: Array -> + args.map { it as Int }.min() ?: 0 + } + val future = smallestSeenNetworkMapSize.filter { it >= requiredNodes }.toFuture() + counterObservable.connect() + return future + } + + private fun startNodeInternal(config: Config, + webAddress: NetworkHostAndPort, + startInProcess: Boolean?, + maximumHeapSize: String): CordaFuture { + val configuration = config.parseAsNodeConfiguration() + val baseDirectory = configuration.baseDirectory.createDirectories() + nodeInfoFilesCopier.addConfig(baseDirectory) + val onNodeExit: () -> Unit = { + nodeInfoFilesCopier.removeConfig(baseDirectory) + countObservables.remove(configuration.myLegalName) + } + if (startInProcess ?: startNodesInProcess) { + val nodeAndThreadFuture = startInProcessNode(executorService, configuration, config, cordappPackages) + shutdownManager.registerShutdown( + nodeAndThreadFuture.map { (node, thread) -> + { + node.dispose() + thread.interrupt() + } + } + ) + return nodeAndThreadFuture.flatMap { (node, thread) -> + establishRpc(configuration, openFuture()).flatMap { rpc -> + allNodesConnected(rpc).map { + NodeHandle.InProcess(rpc.nodeInfo(), rpc, configuration, webAddress, node, thread, onNodeExit) + } + } + } + } else { + val debugPort = if (isDebug) debugPortAllocation.nextPort() else null + val process = startOutOfProcessNode(configuration, config, quasarJarPath, debugPort, systemProperties, cordappPackages, maximumHeapSize) + if (waitForNodesToFinish) { + state.locked { + processes += process + } + } else { + shutdownManager.registerProcessShutdown(process) + } + val p2pReadyFuture = addressMustBeBoundFuture(executorService, configuration.p2pAddress, process) + return p2pReadyFuture.flatMap { + val processDeathFuture = poll(executorService, "process death") { + if (process.isAlive) null else process + } + establishRpc(configuration, processDeathFuture).flatMap { rpc -> + // Check for all nodes to have all other nodes in background in case RPC is failing over: + val networkMapFuture = executorService.fork { allNodesConnected(rpc) }.flatMap { it } + firstOf(processDeathFuture, networkMapFuture) { + if (it == processDeathFuture) { + throw ListenProcessDeathException(configuration.p2pAddress, process) + } + processDeathFuture.cancel(false) + log.info("Node handle is ready. NodeInfo: ${rpc.nodeInfo()}, WebAddress: $webAddress") + NodeHandle.OutOfProcess(rpc.nodeInfo(), rpc, configuration, webAddress, debugPort, process, + onNodeExit) + } + } + } + } + } + + override fun pollUntilNonNull(pollName: String, pollInterval: Duration, warnCount: Int, check: () -> A?): CordaFuture { + val pollFuture = poll(executorService, pollName, pollInterval, warnCount, check) + shutdownManager.registerShutdown { pollFuture.cancel(true) } + return pollFuture + } + + companion object { + internal val log = contextLogger() + + private val defaultRpcUserList = listOf(User("default", "default", setOf("ALL")).toConfig().root().unwrapped()) + + private val names = arrayOf( + ALICE.name, + BOB.name, + DUMMY_BANK_A.name + ) + + /** + * A sub-set of permissions that grant most of the essential operations used in the unit/integration tests as well as + * in demo application like NodeExplorer. + */ + private val DRIVER_REQUIRED_PERMISSIONS = setOf( + Permissions.invokeRpc(CordaRPCOps::nodeInfo), + Permissions.invokeRpc(CordaRPCOps::networkMapFeed), + Permissions.invokeRpc(CordaRPCOps::networkMapSnapshot), + Permissions.invokeRpc(CordaRPCOps::notaryIdentities), + Permissions.invokeRpc(CordaRPCOps::stateMachinesFeed), + Permissions.invokeRpc(CordaRPCOps::stateMachineRecordedTransactionMappingFeed), + Permissions.invokeRpc(CordaRPCOps::nodeInfoFromParty), + Permissions.invokeRpc(CordaRPCOps::internalVerifiedTransactionsFeed), + Permissions.invokeRpc("vaultQueryBy"), + Permissions.invokeRpc("vaultTrackBy"), + Permissions.invokeRpc(CordaRPCOps::registeredFlows) + ) + + private fun oneOf(array: Array) = array[Random().nextInt(array.size)] + + private fun startInProcessNode( + executorService: ScheduledExecutorService, + nodeConf: NodeConfiguration, + config: Config, + cordappPackages: List + ): CordaFuture, Thread>> { + return executorService.fork { + log.info("Starting in-process Node ${nodeConf.myLegalName.organisation}") + // Write node.conf + writeConfig(nodeConf.baseDirectory, "node.conf", config) + // TODO pass the version in? + val node = InProcessNode(nodeConf, MOCK_VERSION_INFO, cordappPackages).start() + val nodeThread = thread(name = nodeConf.myLegalName.organisation) { + node.internals.run() + } + node to nodeThread + }.flatMap { + nodeAndThread -> addressMustBeBoundFuture(executorService, nodeConf.p2pAddress).map { nodeAndThread } + } + } + + private fun startOutOfProcessNode( + nodeConf: NodeConfiguration, + config: Config, + quasarJarPath: String, + debugPort: Int?, + overriddenSystemProperties: Map, + cordappPackages: List, + maximumHeapSize: String + ): Process { + log.info("Starting out-of-process Node ${nodeConf.myLegalName.organisation}, debug port is " + (debugPort ?: "not enabled")) + // Write node.conf + writeConfig(nodeConf.baseDirectory, "node.conf", config) + + val systemProperties = overriddenSystemProperties + mapOf( + "name" to nodeConf.myLegalName, + "visualvm.display.name" to "corda-${nodeConf.myLegalName}", + Node.scanPackagesSystemProperty to cordappPackages.joinToString(Node.scanPackagesSeparator), + "java.io.tmpdir" to System.getProperty("java.io.tmpdir"), // Inherit from parent process + "log4j2.debug" to if(debugPort != null) "true" else "false" + ) + // See experimental/quasar-hook/README.md for how to generate. + val excludePattern = "x(antlr**;bftsmart**;ch**;co.paralleluniverse**;com.codahale**;com.esotericsoftware**;" + + "com.fasterxml**;com.google**;com.ibm**;com.intellij**;com.jcabi**;com.nhaarman**;com.opengamma**;" + + "com.typesafe**;com.zaxxer**;de.javakaffee**;groovy**;groovyjarjarantlr**;groovyjarjarasm**;io.atomix**;" + + "io.github**;io.netty**;jdk**;joptsimple**;junit**;kotlin**;net.bytebuddy**;net.i2p**;org.apache**;" + + "org.assertj**;org.bouncycastle**;org.codehaus**;org.crsh**;org.dom4j**;org.fusesource**;org.h2**;" + + "org.hamcrest**;org.hibernate**;org.jboss**;org.jcp**;org.joda**;org.junit**;org.mockito**;org.objectweb**;" + + "org.objenesis**;org.slf4j**;org.w3c**;org.xml**;org.yaml**;reflectasm**;rx**)" + val extraJvmArguments = systemProperties.removeResolvedClasspath().map { "-D${it.key}=${it.value}" } + + "-javaagent:$quasarJarPath=$excludePattern" + val loggingLevel = if (debugPort == null) "INFO" else "DEBUG" + + return ProcessUtilities.startCordaProcess( + className = "net.corda.node.Corda", // cannot directly get class for this, so just use string + arguments = listOf( + "--base-directory=${nodeConf.baseDirectory}", + "--logging-level=$loggingLevel", + "--no-local-shell" + ), + jdwpPort = debugPort, + extraJvmArguments = extraJvmArguments, + errorLogPath = nodeConf.baseDirectory / NodeStartup.LOGS_DIRECTORY_NAME / "error.log", + workingDirectory = nodeConf.baseDirectory, + maximumHeapSize = maximumHeapSize + ) + } + + private fun startWebserver(handle: NodeHandle, debugPort: Int?, maximumHeapSize: String): Process { + val className = "net.corda.webserver.WebServer" + return ProcessUtilities.startCordaProcess( + className = className, // cannot directly get class for this, so just use string + arguments = listOf("--base-directory", handle.configuration.baseDirectory.toString()), + jdwpPort = debugPort, + extraJvmArguments = listOf( + "-Dname=node-${handle.configuration.p2pAddress}-webserver", + "-Djava.io.tmpdir=${System.getProperty("java.io.tmpdir")}" // Inherit from parent process + ), + errorLogPath = Paths.get("error.$className.log"), + workingDirectory = null, + maximumHeapSize = maximumHeapSize + ) + } + + /** + * Get the package of the caller to the driver so that it can be added to the list of packages the nodes will scan. + * This makes the driver automatically pick the CorDapp module that it's run from. + * + * This returns List rather than String? to make it easier to bolt onto extraCordappPackagesToScan. + */ + private fun getCallerPackage(): List { + val stackTrace = Throwable().stackTrace + val index = stackTrace.indexOfLast { it.className == "net.corda.testing.driver.Driver" } + // In this case we're dealing with the the RPCDriver or one of it's cousins which are internal and we don't care about them + if (index == -1) return emptyList() + val callerPackage = Class.forName(stackTrace[index + 1].className).`package` ?: + throw IllegalStateException("Function instantiating driver must be defined in a package.") + return listOf(callerPackage.name) + } + + /** + * We have an alternative way of specifying classpath for spawned process: by using "-cp" option. So duplicating the setting of this + * rather long string is un-necessary and can be harmful on Windows. + */ + private fun Map.removeResolvedClasspath(): Map { + return filterNot { it.key == "java.class.path" } + } + } +} + +interface InternalDriverDSL : DriverDSL, CordformContext { + private companion object { + private val DEFAULT_POLL_INTERVAL = 500.millis + private const val DEFAULT_WARN_COUNT = 120 + } + + val shutdownManager: ShutdownManager + + override fun baseDirectory(nodeName: String): Path = baseDirectory(CordaX500Name.parse(nodeName)) + + /** + * Polls a function until it returns a non-null value. Note that there is no timeout on the polling. + * + * @param pollName A description of what is being polled. + * @param pollInterval The interval of polling. + * @param warnCount The number of polls after the Driver gives a warning. + * @param check The function being polled. + * @return A future that completes with the non-null value [check] has returned. + */ + fun pollUntilNonNull(pollName: String, pollInterval: Duration = DEFAULT_POLL_INTERVAL, warnCount: Int = DEFAULT_WARN_COUNT, check: () -> A?): CordaFuture + + /** + * Polls the given function until it returns true. + * @see pollUntilNonNull + */ + fun pollUntilTrue(pollName: String, pollInterval: Duration = DEFAULT_POLL_INTERVAL, warnCount: Int = DEFAULT_WARN_COUNT, check: () -> Boolean): CordaFuture { + return pollUntilNonNull(pollName, pollInterval, warnCount) { if (check()) Unit else null } + } + + fun start() + + fun shutdown() +} + +/** + * This is a helper method to allow extending of the DSL, along the lines of + * interface SomeOtherExposedDSLInterface : DriverDSL + * interface SomeOtherInternalDSLInterface : InternalDriverDSL, SomeOtherExposedDSLInterface + * class SomeOtherDSL(val driverDSL : DriverDSLImpl) : InternalDriverDSL by driverDSL, SomeOtherInternalDSLInterface + * + * @param coerce We need this explicit coercion witness because we can't put an extra DI : D bound in a `where` clause. + */ +fun genericDriver( + driverDsl: D, + initialiseSerialization: Boolean = true, + coerce: (D) -> DI, + dsl: DI.() -> A +): A { + val serializationEnv = setGlobalSerialization(initialiseSerialization) + val shutdownHook = addShutdownHook(driverDsl::shutdown) + try { + driverDsl.start() + return dsl(coerce(driverDsl)) + } catch (exception: Throwable) { + DriverDSLImpl.log.error("Driver shutting down because of exception", exception) + throw exception + } finally { + driverDsl.shutdown() + shutdownHook.cancel() + serializationEnv.unset() + } +} + +/** + * This is a helper method to allow extending of the DSL, along the lines of + * interface SomeOtherExposedDSLInterface : DriverDSL + * interface SomeOtherInternalDSLInterface : InternalDriverDSL, SomeOtherExposedDSLInterface + * class SomeOtherDSL(val driverDSL : DriverDSLImpl) : InternalDriverDSL by driverDSL, SomeOtherInternalDSLInterface + * + * @param coerce We need this explicit coercion witness because we can't put an extra DI : D bound in a `where` clause. + */ +fun genericDriver( + defaultParameters: DriverParameters = DriverParameters(), + isDebug: Boolean = defaultParameters.isDebug, + driverDirectory: Path = defaultParameters.driverDirectory, + portAllocation: PortAllocation = defaultParameters.portAllocation, + debugPortAllocation: PortAllocation = defaultParameters.debugPortAllocation, + systemProperties: Map = defaultParameters.systemProperties, + useTestClock: Boolean = defaultParameters.useTestClock, + initialiseSerialization: Boolean = defaultParameters.initialiseSerialization, + waitForNodesToFinish: Boolean = defaultParameters.waitForAllNodesToFinish, + startNodesInProcess: Boolean = defaultParameters.startNodesInProcess, + notarySpecs: List, + extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, + driverDslWrapper: (DriverDSLImpl) -> D, + coerce: (D) -> DI, dsl: DI.() -> A +): A { + val serializationEnv = setGlobalSerialization(initialiseSerialization) + val driverDsl = driverDslWrapper( + DriverDSLImpl( + portAllocation = portAllocation, + debugPortAllocation = debugPortAllocation, + systemProperties = systemProperties, + driverDirectory = driverDirectory.toAbsolutePath(), + useTestClock = useTestClock, + isDebug = isDebug, + startNodesInProcess = startNodesInProcess, + waitForNodesToFinish = waitForNodesToFinish, + extraCordappPackagesToScan = extraCordappPackagesToScan, + notarySpecs = notarySpecs + ) + ) + val shutdownHook = addShutdownHook(driverDsl::shutdown) + try { + driverDsl.start() + return dsl(coerce(driverDsl)) + } catch (exception: Throwable) { + DriverDSLImpl.log.error("Driver shutting down because of exception", exception) + throw exception + } finally { + driverDsl.shutdown() + shutdownHook.cancel() + serializationEnv.unset() + } +} + +fun getTimestampAsDirectoryName(): String { + return DateTimeFormatter.ofPattern("yyyyMMddHHmmss").withZone(ZoneOffset.UTC).format(Instant.now()) +} + +fun writeConfig(path: Path, filename: String, config: Config) { + val configString = config.root().render(ConfigRenderOptions.defaults()) + configString.byteInputStream().copyTo(path / filename, StandardCopyOption.REPLACE_EXISTING) +} diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/InternalTestUtils.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/InternalTestUtils.kt new file mode 100644 index 0000000000..b24db80a3f --- /dev/null +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/InternalTestUtils.kt @@ -0,0 +1,93 @@ +package net.corda.testing.internal + +import net.corda.core.CordaException +import net.corda.core.concurrent.CordaFuture +import net.corda.core.internal.concurrent.openFuture +import net.corda.core.internal.times +import net.corda.core.utilities.NetworkHostAndPort +import net.corda.core.utilities.getOrThrow +import net.corda.core.utilities.millis +import net.corda.core.utilities.seconds +import org.slf4j.LoggerFactory +import java.net.Socket +import java.net.SocketException +import java.time.Duration +import java.util.concurrent.ScheduledExecutorService +import java.util.concurrent.TimeUnit + +private val log = LoggerFactory.getLogger("net.corda.testing.internal.InternalTestUtils") + +/** + * @throws ListenProcessDeathException if [listenProcess] dies before the check succeeds, i.e. the check can't succeed as intended. + */ +fun addressMustBeBound(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, listenProcess: Process? = null) { + addressMustBeBoundFuture(executorService, hostAndPort, listenProcess).getOrThrow() +} + +fun addressMustBeBoundFuture(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, listenProcess: Process? = null): CordaFuture { + return poll(executorService, "address $hostAndPort to bind") { + if (listenProcess != null && !listenProcess.isAlive) { + throw ListenProcessDeathException(hostAndPort, listenProcess) + } + try { + Socket(hostAndPort.host, hostAndPort.port).close() + Unit + } catch (_exception: SocketException) { + null + } + } +} + +/* + * The default timeout value of 40 seconds have been chosen based on previous node shutdown time estimate. + * It's been observed that nodes can take up to 30 seconds to shut down, so just to stay on the safe side the 60 seconds + * timeout has been chosen. + */ +fun addressMustNotBeBound(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort, timeout: Duration = 40.seconds) { + addressMustNotBeBoundFuture(executorService, hostAndPort).getOrThrow(timeout) +} + +fun addressMustNotBeBoundFuture(executorService: ScheduledExecutorService, hostAndPort: NetworkHostAndPort): CordaFuture { + return poll(executorService, "address $hostAndPort to unbind") { + try { + Socket(hostAndPort.host, hostAndPort.port).close() + null + } catch (_exception: SocketException) { + Unit + } + } +} + +fun poll( + executorService: ScheduledExecutorService, + pollName: String, + pollInterval: Duration = 500.millis, + warnCount: Int = 120, + check: () -> A? +): CordaFuture { + val resultFuture = openFuture() + val task = object : Runnable { + var counter = -1 + override fun run() { + if (resultFuture.isCancelled) return // Give up, caller can no longer get the result. + if (++counter == warnCount) { + log.warn("Been polling $pollName for ${(pollInterval * warnCount.toLong()).seconds} seconds...") + } + try { + val checkResult = check() + if (checkResult != null) { + resultFuture.set(checkResult) + } else { + executorService.schedule(this, pollInterval.toMillis(), TimeUnit.MILLISECONDS) + } + } catch (t: Throwable) { + resultFuture.setException(t) + } + } + } + executorService.submit(task) // The check may be expensive, so always run it in the background even the first time. + return resultFuture +} + +class ListenProcessDeathException(hostAndPort: NetworkHostAndPort, listenProcess: Process) : + CordaException("The process that was expected to listen on $hostAndPort has died with status: ${listenProcess.exitValue()}") diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt index 061974adf6..781dcd6cff 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/NodeBasedTest.kt @@ -12,13 +12,8 @@ import net.corda.node.internal.Node import net.corda.node.internal.StartedNode import net.corda.node.internal.cordapp.CordappLoader import net.corda.node.services.config.* -import net.corda.node.services.config.ConfigHelper -import net.corda.node.services.config.configOf -import net.corda.node.services.config.parseAsNodeConfiguration -import net.corda.node.services.config.plus import net.corda.nodeapi.internal.config.User import net.corda.testing.SerializationEnvironmentRule -import net.corda.testing.driver.addressMustNotBeBoundFuture import net.corda.testing.getFreeLocalPorts import net.corda.testing.node.MockServices.Companion.MOCK_VERSION_INFO import org.apache.logging.log4j.Level diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt index 7c9a81326f..8efac75115 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt @@ -52,159 +52,25 @@ import java.nio.file.Path import java.nio.file.Paths import java.util.* -interface RPCDriverExposedDSLInterface : DriverDSLExposedInterface { - /** - * Starts an In-VM RPC server. Note that only a single one may be started. - * - * @param rpcUser The single user who can access the server through RPC, and their permissions. - * @param nodeLegalName The legal name of the node to check against to authenticate a super user. - * @param configuration The RPC server configuration. - * @param ops The server-side implementation of the RPC interface. - */ - fun startInVmRpcServer( - rpcUser: User = rpcTestUser, - nodeLegalName: CordaX500Name = fakeNodeLegalName, - maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, - maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, - configuration: RPCServerConfiguration = RPCServerConfiguration.default, - ops: I - ): CordaFuture - - /** - * Starts an In-VM RPC client. - * - * @param rpcOpsClass The [Class] of the RPC interface. - * @param username The username to authenticate with. - * @param password The password to authenticate with. - * @param configuration The RPC client configuration. - */ - fun startInVmRpcClient( - rpcOpsClass: Class, - username: String = rpcTestUser.username, - password: String = rpcTestUser.password, - configuration: RPCClientConfiguration = RPCClientConfiguration.default - ): CordaFuture - - /** - * Starts an In-VM Artemis session connecting to the RPC server. - * - * @param username The username to authenticate with. - * @param password The password to authenticate with. - */ - fun startInVmArtemisSession( - username: String = rpcTestUser.username, - password: String = rpcTestUser.password - ): ClientSession - - /** - * Starts a Netty RPC server. - * - * @param serverName The name of the server, to be used for the folder created for Artemis files. - * @param rpcUser The single user who can access the server through RPC, and their permissions. - * @param nodeLegalName The legal name of the node to check against to authenticate a super user. - * @param configuration The RPC server configuration. - * @param ops The server-side implementation of the RPC interface. - */ - fun startRpcServer( - serverName: String = "driver-rpc-server-${random63BitValue()}", - rpcUser: User = rpcTestUser, - nodeLegalName: CordaX500Name = fakeNodeLegalName, - maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, - maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, - configuration: RPCServerConfiguration = RPCServerConfiguration.default, - customPort: NetworkHostAndPort? = null, - ops: I - ): CordaFuture - - /** - * Starts a Netty RPC client. - * - * @param rpcOpsClass The [Class] of the RPC interface. - * @param rpcAddress The address of the RPC server to connect to. - * @param username The username to authenticate with. - * @param password The password to authenticate with. - * @param configuration The RPC client configuration. - */ - fun startRpcClient( - rpcOpsClass: Class, - rpcAddress: NetworkHostAndPort, - username: String = rpcTestUser.username, - password: String = rpcTestUser.password, - configuration: RPCClientConfiguration = RPCClientConfiguration.default - ): CordaFuture - - /** - * Starts a Netty RPC client in a new JVM process that calls random RPCs with random arguments. - * - * @param rpcOpsClass The [Class] of the RPC interface. - * @param rpcAddress The address of the RPC server to connect to. - * @param username The username to authenticate with. - * @param password The password to authenticate with. - */ - fun startRandomRpcClient( - rpcOpsClass: Class, - rpcAddress: NetworkHostAndPort, - username: String = rpcTestUser.username, - password: String = rpcTestUser.password - ): CordaFuture - - /** - * Starts a Netty Artemis session connecting to an RPC server. - * - * @param rpcAddress The address of the RPC server. - * @param username The username to authenticate with. - * @param password The password to authenticate with. - */ - fun startArtemisSession( - rpcAddress: NetworkHostAndPort, - username: String = rpcTestUser.username, - password: String = rpcTestUser.password - ): ClientSession - - fun startRpcBroker( - serverName: String = "driver-rpc-server-${random63BitValue()}", - rpcUser: User = rpcTestUser, - maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, - maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, - customPort: NetworkHostAndPort? = null - ): CordaFuture - - fun startInVmRpcBroker( - rpcUser: User = rpcTestUser, - maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, - maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE - ): CordaFuture - - fun startRpcServerWithBrokerRunning( - rpcUser: User = rpcTestUser, - nodeLegalName: CordaX500Name = fakeNodeLegalName, - configuration: RPCServerConfiguration = RPCServerConfiguration.default, - ops: I, - brokerHandle: RpcBrokerHandle - ): RpcServerHandle -} - -inline fun RPCDriverExposedDSLInterface.startInVmRpcClient( +inline fun RPCDriverDSL.startInVmRpcClient( username: String = rpcTestUser.username, password: String = rpcTestUser.password, configuration: RPCClientConfiguration = RPCClientConfiguration.default ) = startInVmRpcClient(I::class.java, username, password, configuration) -inline fun RPCDriverExposedDSLInterface.startRandomRpcClient( +inline fun RPCDriverDSL.startRandomRpcClient( hostAndPort: NetworkHostAndPort, username: String = rpcTestUser.username, password: String = rpcTestUser.password ) = startRandomRpcClient(I::class.java, hostAndPort, username, password) -inline fun RPCDriverExposedDSLInterface.startRpcClient( +inline fun RPCDriverDSL.startRpcClient( rpcAddress: NetworkHostAndPort, username: String = rpcTestUser.username, password: String = rpcTestUser.password, configuration: RPCClientConfiguration = RPCClientConfiguration.default ) = startRpcClient(I::class.java, rpcAddress, username, password, configuration) -interface RPCDriverInternalDSLInterface : DriverDSLInternalInterface, RPCDriverExposedDSLInterface - data class RpcBrokerHandle( val hostAndPort: NetworkHostAndPort?, /** null if this is an InVM broker */ @@ -235,26 +101,28 @@ fun rpcDriver( extraCordappPackagesToScan: List = emptyList(), notarySpecs: List = emptyList(), externalTrace: Trace? = null, - dsl: RPCDriverExposedDSLInterface.() -> A -) = genericDriver( - driverDsl = RPCDriverDSL( - DriverDSL( - portAllocation = portAllocation, - debugPortAllocation = debugPortAllocation, - systemProperties = systemProperties, - driverDirectory = driverDirectory.toAbsolutePath(), - useTestClock = useTestClock, - isDebug = isDebug, - startNodesInProcess = startNodesInProcess, - waitForNodesToFinish = waitForNodesToFinish, - extraCordappPackagesToScan = extraCordappPackagesToScan, - notarySpecs = notarySpecs - ), externalTrace - ), - coerce = { it }, - dsl = dsl, - initialiseSerialization = false -) + dsl: RPCDriverDSL.() -> A +): A { + return genericDriver( + driverDsl = RPCDriverDSL( + DriverDSLImpl( + portAllocation = portAllocation, + debugPortAllocation = debugPortAllocation, + systemProperties = systemProperties, + driverDirectory = driverDirectory.toAbsolutePath(), + useTestClock = useTestClock, + isDebug = isDebug, + startNodesInProcess = startNodesInProcess, + waitForNodesToFinish = waitForNodesToFinish, + extraCordappPackagesToScan = extraCordappPackagesToScan, + notarySpecs = notarySpecs + ), externalTrace + ), + coerce = { it }, + dsl = dsl, + initialiseSerialization = false + ) +} private class SingleUserSecurityManager(val rpcUser: User) : ActiveMQSecurityManager3 { override fun validateUser(user: String?, password: String?) = isValid(user, password) @@ -276,8 +144,8 @@ private class SingleUserSecurityManager(val rpcUser: User) : ActiveMQSecurityMan } data class RPCDriverDSL( - private val driverDSL: DriverDSL, private val externalTrace: Trace? -) : DriverDSLInternalInterface by driverDSL, RPCDriverInternalDSLInterface { + private val driverDSL: DriverDSLImpl, private val externalTrace: Trace? +) : InternalDriverDSL by driverDSL { private companion object { val notificationAddress = "notifications" @@ -340,12 +208,20 @@ data class RPCDriverDSL( } } - override fun startInVmRpcServer( - rpcUser: User, - nodeLegalName: CordaX500Name, - maxFileSize: Int, - maxBufferedBytesPerClient: Long, - configuration: RPCServerConfiguration, + /** + * Starts an In-VM RPC server. Note that only a single one may be started. + * + * @param rpcUser The single user who can access the server through RPC, and their permissions. + * @param nodeLegalName The legal name of the node to check against to authenticate a super user. + * @param configuration The RPC server configuration. + * @param ops The server-side implementation of the RPC interface. + */ + fun startInVmRpcServer( + rpcUser: User = rpcTestUser, + nodeLegalName: CordaX500Name = fakeNodeLegalName, + maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, + maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, + configuration: RPCServerConfiguration = RPCServerConfiguration.default, ops: I ): CordaFuture { return startInVmRpcBroker(rpcUser, maxFileSize, maxBufferedBytesPerClient).map { broker -> @@ -353,7 +229,20 @@ data class RPCDriverDSL( } } - override fun startInVmRpcClient(rpcOpsClass: Class, username: String, password: String, configuration: RPCClientConfiguration): CordaFuture { + /** + * Starts an In-VM RPC client. + * + * @param rpcOpsClass The [Class] of the RPC interface. + * @param username The username to authenticate with. + * @param password The password to authenticate with. + * @param configuration The RPC client configuration. + */ + fun startInVmRpcClient( + rpcOpsClass: Class, + username: String = rpcTestUser.username, + password: String = rpcTestUser.password, + configuration: RPCClientConfiguration = RPCClientConfiguration.default + ): CordaFuture { return driverDSL.executorService.fork { val client = RPCClient(inVmClientTransportConfiguration, configuration) val connection = client.start(rpcOpsClass, username, password, externalTrace) @@ -364,7 +253,16 @@ data class RPCDriverDSL( } } - override fun startInVmArtemisSession(username: String, password: String): ClientSession { + /** + * Starts an In-VM Artemis session connecting to the RPC server. + * + * @param username The username to authenticate with. + * @param password The password to authenticate with. + */ + fun startInVmArtemisSession( + username: String = rpcTestUser.username, + password: String = rpcTestUser.password + ): ClientSession { val locator = ActiveMQClient.createServerLocatorWithoutHA(inVmClientTransportConfiguration) val sessionFactory = locator.createSessionFactory() val session = sessionFactory.createSession(username, password, false, true, true, locator.isPreAcknowledge, DEFAULT_ACK_BATCH_SIZE) @@ -376,14 +274,23 @@ data class RPCDriverDSL( return session } - override fun startRpcServer( - serverName: String, - rpcUser: User, - nodeLegalName: CordaX500Name, - maxFileSize: Int, - maxBufferedBytesPerClient: Long, - configuration: RPCServerConfiguration, - customPort: NetworkHostAndPort?, + /** + * Starts a Netty RPC server. + * + * @param serverName The name of the server, to be used for the folder created for Artemis files. + * @param rpcUser The single user who can access the server through RPC, and their permissions. + * @param nodeLegalName The legal name of the node to check against to authenticate a super user. + * @param configuration The RPC server configuration. + * @param ops The server-side implementation of the RPC interface. + */ + fun startRpcServer( + serverName: String = "driver-rpc-server-${random63BitValue()}", + rpcUser: User = rpcTestUser, + nodeLegalName: CordaX500Name = fakeNodeLegalName, + maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, + maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, + configuration: RPCServerConfiguration = RPCServerConfiguration.default, + customPort: NetworkHostAndPort? = null, ops: I ): CordaFuture { return startRpcBroker(serverName, rpcUser, maxFileSize, maxBufferedBytesPerClient, customPort).map { broker -> @@ -391,12 +298,21 @@ data class RPCDriverDSL( } } - override fun startRpcClient( + /** + * Starts a Netty RPC client. + * + * @param rpcOpsClass The [Class] of the RPC interface. + * @param rpcAddress The address of the RPC server to connect to. + * @param username The username to authenticate with. + * @param password The password to authenticate with. + * @param configuration The RPC client configuration. + */ + fun startRpcClient( rpcOpsClass: Class, rpcAddress: NetworkHostAndPort, - username: String, - password: String, - configuration: RPCClientConfiguration + username: String = rpcTestUser.username, + password: String = rpcTestUser.password, + configuration: RPCClientConfiguration = RPCClientConfiguration.default ): CordaFuture { return driverDSL.executorService.fork { val client = RPCClient(ArtemisTcpTransport.tcpTransport(ConnectionDirection.Outbound(), rpcAddress, null), configuration) @@ -408,13 +324,37 @@ data class RPCDriverDSL( } } - override fun startRandomRpcClient(rpcOpsClass: Class, rpcAddress: NetworkHostAndPort, username: String, password: String): CordaFuture { + /** + * Starts a Netty RPC client in a new JVM process that calls random RPCs with random arguments. + * + * @param rpcOpsClass The [Class] of the RPC interface. + * @param rpcAddress The address of the RPC server to connect to. + * @param username The username to authenticate with. + * @param password The password to authenticate with. + */ + fun startRandomRpcClient( + rpcOpsClass: Class, + rpcAddress: NetworkHostAndPort, + username: String = rpcTestUser.username, + password: String = rpcTestUser.password + ): CordaFuture { val process = ProcessUtilities.startJavaProcess(listOf(rpcOpsClass.name, rpcAddress.toString(), username, password)) driverDSL.shutdownManager.registerProcessShutdown(process) return doneFuture(process) } - override fun startArtemisSession(rpcAddress: NetworkHostAndPort, username: String, password: String): ClientSession { + /** + * Starts a Netty Artemis session connecting to an RPC server. + * + * @param rpcAddress The address of the RPC server. + * @param username The username to authenticate with. + * @param password The password to authenticate with. + */ + fun startArtemisSession( + rpcAddress: NetworkHostAndPort, + username: String = rpcTestUser.username, + password: String = rpcTestUser.password + ): ClientSession { val locator = ActiveMQClient.createServerLocatorWithoutHA(createNettyClientTransportConfiguration(rpcAddress)) val sessionFactory = locator.createSessionFactory() val session = sessionFactory.createSession(username, password, false, true, true, false, DEFAULT_ACK_BATCH_SIZE) @@ -427,12 +367,12 @@ data class RPCDriverDSL( return session } - override fun startRpcBroker( - serverName: String, - rpcUser: User, - maxFileSize: Int, - maxBufferedBytesPerClient: Long, - customPort: NetworkHostAndPort? + fun startRpcBroker( + serverName: String = "driver-rpc-server-${random63BitValue()}", + rpcUser: User = rpcTestUser, + maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, + maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE, + customPort: NetworkHostAndPort? = null ): CordaFuture { val hostAndPort = customPort ?: driverDSL.portAllocation.nextHostAndPort() addressMustNotBeBound(driverDSL.executorService, hostAndPort) @@ -452,7 +392,11 @@ data class RPCDriverDSL( } } - override fun startInVmRpcBroker(rpcUser: User, maxFileSize: Int, maxBufferedBytesPerClient: Long): CordaFuture { + fun startInVmRpcBroker( + rpcUser: User = rpcTestUser, + maxFileSize: Int = ArtemisMessagingServer.MAX_FILE_SIZE, + maxBufferedBytesPerClient: Long = 10L * ArtemisMessagingServer.MAX_FILE_SIZE + ): CordaFuture { return driverDSL.executorService.fork { val artemisConfig = createInVmRpcServerArtemisConfig(maxFileSize, maxBufferedBytesPerClient) val server = EmbeddedActiveMQ() @@ -471,10 +415,10 @@ data class RPCDriverDSL( } } - override fun startRpcServerWithBrokerRunning( - rpcUser: User, - nodeLegalName: CordaX500Name, - configuration: RPCServerConfiguration, + fun startRpcServerWithBrokerRunning( + rpcUser: User = rpcTestUser, + nodeLegalName: CordaX500Name = fakeNodeLegalName, + configuration: RPCServerConfiguration = RPCServerConfiguration.default, ops: I, brokerHandle: RpcBrokerHandle ): RpcServerHandle { diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/ShutdownManager.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/ShutdownManager.kt similarity index 99% rename from testing/node-driver/src/main/kotlin/net/corda/testing/driver/ShutdownManager.kt rename to testing/node-driver/src/main/kotlin/net/corda/testing/internal/ShutdownManager.kt index 0e8752aeb6..022569b958 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/ShutdownManager.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/ShutdownManager.kt @@ -1,4 +1,4 @@ -package net.corda.testing.driver +package net.corda.testing.internal import net.corda.core.concurrent.CordaFuture import net.corda.core.internal.ThreadBox diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt index 5155a31850..fb7396ec1d 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt @@ -8,7 +8,7 @@ import net.corda.core.internal.concurrent.flatMap import net.corda.core.internal.concurrent.transpose import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.getOrThrow -import net.corda.testing.driver.DriverDSL +import net.corda.testing.internal.DriverDSLImpl import net.corda.testing.driver.PortAllocation import net.corda.testing.driver.driver @@ -49,8 +49,8 @@ private fun CordformDefinition.runNodes(waitForAllNodesToFinish: Boolean, block: portAllocation = PortAllocation.Incremental(maxPort + 1), waitForAllNodesToFinish = waitForAllNodesToFinish ) { + this as DriverDSLImpl // access internal API setup(this) - this as DriverDSL // startCordformNode is an internal API nodes.map { val startedNode = startCordformNode(it) if (it.webAddress != null) { diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Injectors.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Injectors.kt index 83ef6fc585..b4b0f9f33d 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Injectors.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Injectors.kt @@ -3,7 +3,7 @@ package net.corda.testing.internal.performance import com.codahale.metrics.Gauge import com.codahale.metrics.MetricRegistry import com.google.common.base.Stopwatch -import net.corda.testing.driver.ShutdownManager +import net.corda.testing.internal.ShutdownManager import java.time.Duration import java.util.* import java.util.concurrent.CountDownLatch diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Reporter.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Reporter.kt index 9cac82d1af..5446165087 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Reporter.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/performance/Reporter.kt @@ -3,7 +3,7 @@ package net.corda.testing.internal.performance import com.codahale.metrics.ConsoleReporter import com.codahale.metrics.JmxReporter import com.codahale.metrics.MetricRegistry -import net.corda.testing.driver.ShutdownManager +import net.corda.testing.internal.ShutdownManager import java.util.concurrent.TimeUnit import javax.management.ObjectName import kotlin.concurrent.thread diff --git a/testing/test-utils/src/main/kotlin/net/corda/testing/X500NameUtils.kt b/testing/test-utils/src/main/kotlin/net/corda/testing/X500NameUtils.kt deleted file mode 100644 index 1af6357b7e..0000000000 --- a/testing/test-utils/src/main/kotlin/net/corda/testing/X500NameUtils.kt +++ /dev/null @@ -1,29 +0,0 @@ -@file:JvmName("X500NameUtils") - -package net.corda.testing - -import org.bouncycastle.asn1.x500.X500Name -import org.bouncycastle.asn1.x500.X500NameBuilder -import org.bouncycastle.asn1.x500.style.BCStyle - -/** - * Generate a distinguished name from the provided X500 . - * - * @param O organisation name. - * @param L locality. - * @param C county. - * @param CN common name. - * @param OU organisation unit. - * @param ST state. - */ -@JvmOverloads -fun getX500Name(O: String, L: String, C: String, CN: String? = null, OU: String? = null, ST: String? = null): X500Name { - return X500NameBuilder(BCStyle.INSTANCE).apply { - addRDN(BCStyle.C, C) - ST?.let { addRDN(BCStyle.ST, it) } - addRDN(BCStyle.L, L) - addRDN(BCStyle.O, O) - OU?.let { addRDN(BCStyle.OU, it) } - CN?.let { addRDN(BCStyle.CN, it) } - }.build() -} \ No newline at end of file diff --git a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt index 12365b2f65..8ce77720f5 100644 --- a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt +++ b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt @@ -16,14 +16,16 @@ import net.corda.core.transactions.LedgerTransaction import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.contextLogger import net.corda.node.services.config.configureDevKeyAndTrustStores -import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER import net.corda.nodeapi.ArtemisTcpTransport import net.corda.nodeapi.ConnectionDirection import net.corda.nodeapi.VerifierApi import net.corda.nodeapi.internal.config.NodeSSLConfiguration import net.corda.nodeapi.internal.config.SSLConfiguration -import net.corda.testing.driver.* -import net.corda.testing.internal.ProcessUtilities +import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER +import net.corda.testing.driver.NodeHandle +import net.corda.testing.driver.PortAllocation +import net.corda.testing.driver.driver +import net.corda.testing.internal.* import net.corda.testing.node.NotarySpec import org.apache.activemq.artemis.api.core.SimpleString import org.apache.activemq.artemis.api.core.client.ActiveMQClient @@ -43,34 +45,6 @@ import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.atomic.AtomicInteger -/** - * This file defines an extension to [DriverDSL] that allows starting of verifier processes and - * lightweight verification requestors. - */ -interface VerifierExposedDSLInterface : DriverDSLExposedInterface { - /** Starts a lightweight verification requestor that implements the Node's Verifier API */ - fun startVerificationRequestor(name: CordaX500Name): CordaFuture - - /** Starts an out of process verifier connected to [address] */ - fun startVerifier(address: NetworkHostAndPort): CordaFuture - - /** - * Waits until [number] verifiers are listening for verification requests coming from the Node. Check - * [VerificationRequestorHandle.waitUntilNumberOfVerifiers] for an equivalent for requestors. - */ - fun NodeHandle.waitUntilNumberOfVerifiers(number: Int) -} - -/** Starts a verifier connecting to the specified node */ -fun VerifierExposedDSLInterface.startVerifier(nodeHandle: NodeHandle) = - startVerifier(nodeHandle.configuration.p2pAddress) - -/** Starts a verifier connecting to the specified requestor */ -fun VerifierExposedDSLInterface.startVerifier(verificationRequestorHandle: VerificationRequestorHandle) = - startVerifier(verificationRequestorHandle.p2pAddress) - -interface VerifierInternalDSLInterface : DriverDSLInternalInterface, VerifierExposedDSLInterface - /** * Behaves the same as [driver] and adds verifier-related functionality. */ @@ -85,10 +59,10 @@ fun verifierDriver( waitForNodesToFinish: Boolean = false, extraCordappPackagesToScan: List = emptyList(), notarySpecs: List = emptyList(), - dsl: VerifierExposedDSLInterface.() -> A + dsl: VerifierDriverDSL.() -> A ) = genericDriver( driverDsl = VerifierDriverDSL( - DriverDSL( + DriverDSLImpl( portAllocation = portAllocation, debugPortAllocation = debugPortAllocation, systemProperties = systemProperties, @@ -143,10 +117,8 @@ data class VerificationRequestorHandle( } -data class VerifierDriverDSL( - val driverDSL: DriverDSL -) : DriverDSLInternalInterface by driverDSL, VerifierInternalDSLInterface { - val verifierCount = AtomicInteger(0) +data class VerifierDriverDSL(private val driverDSL: DriverDSLImpl) : InternalDriverDSL by driverDSL { + private val verifierCount = AtomicInteger(0) companion object { private val log = contextLogger() @@ -183,7 +155,8 @@ data class VerifierDriverDSL( } } - override fun startVerificationRequestor(name: CordaX500Name): CordaFuture { + /** Starts a lightweight verification requestor that implements the Node's Verifier API */ + fun startVerificationRequestor(name: CordaX500Name): CordaFuture { val hostAndPort = driverDSL.portAllocation.nextHostAndPort() return driverDSL.executorService.fork { startVerificationRequestorInternal(name, hostAndPort) @@ -255,7 +228,8 @@ data class VerifierDriverDSL( ) } - override fun startVerifier(address: NetworkHostAndPort): CordaFuture { + /** Starts an out of process verifier connected to [address] */ + fun startVerifier(address: NetworkHostAndPort): CordaFuture { log.info("Starting verifier connecting to address $address") val id = verifierCount.andIncrement val jdwpPort = if (driverDSL.isDebug) driverDSL.debugPortAllocation.nextPort() else null @@ -270,6 +244,16 @@ data class VerifierDriverDSL( return doneFuture(VerifierHandle(process)) } + /** Starts a verifier connecting to the specified node */ + fun startVerifier(nodeHandle: NodeHandle): CordaFuture { + return startVerifier(nodeHandle.configuration.p2pAddress) + } + + /** Starts a verifier connecting to the specified requestor */ + fun startVerifier(verificationRequestorHandle: VerificationRequestorHandle): CordaFuture { + return startVerifier(verificationRequestorHandle.p2pAddress) + } + private fun NodeHandle.connectToNode(closure: (ClientSession) -> A): A { val transport = ArtemisTcpTransport.tcpTransport(ConnectionDirection.Outbound(), configuration.p2pAddress, configuration) val locator = ActiveMQClient.createServerLocatorWithoutHA(transport) @@ -280,7 +264,11 @@ data class VerifierDriverDSL( } } - override fun NodeHandle.waitUntilNumberOfVerifiers(number: Int) { + /** + * Waits until [number] verifiers are listening for verification requests coming from the Node. Check + * [VerificationRequestorHandle.waitUntilNumberOfVerifiers] for an equivalent for requestors. + */ + fun NodeHandle.waitUntilNumberOfVerifiers(number: Int) { connectToNode { session -> poll(driverDSL.executorService, "$number verifiers to come online") { if (session.queueQuery(SimpleString(VerifierApi.VERIFICATION_REQUESTS_QUEUE_NAME)).consumerCount >= number) { diff --git a/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt b/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt index ee85cef6fd..c23c270015 100644 --- a/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt +++ b/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt @@ -4,8 +4,8 @@ import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.getOrThrow import net.corda.testing.DUMMY_BANK_A import net.corda.testing.driver.WebserverHandle -import net.corda.testing.driver.addressMustBeBound -import net.corda.testing.driver.addressMustNotBeBound +import net.corda.testing.internal.addressMustBeBound +import net.corda.testing.internal.addressMustNotBeBound import net.corda.testing.driver.driver import org.junit.Test import java.util.concurrent.Executors From eb3b816d906c4eff771aa8df37affd6cd51f7b5e Mon Sep 17 00:00:00 2001 From: Alberto Arri <30873160+al-r3@users.noreply.github.com> Date: Wed, 6 Dec 2017 14:36:09 +0000 Subject: [PATCH 02/17] Rename NetworkisRegistrationHelperTest to NetworkRegistrationHelperTest (#2185) --- ...RegistrationHelperTest.kt => NetworkRegistrationHelperTest.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename node/src/test/kotlin/net/corda/node/utilities/registration/{NetworkisRegistrationHelperTest.kt => NetworkRegistrationHelperTest.kt} (100%) diff --git a/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkisRegistrationHelperTest.kt b/node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt similarity index 100% rename from node/src/test/kotlin/net/corda/node/utilities/registration/NetworkisRegistrationHelperTest.kt rename to node/src/test/kotlin/net/corda/node/utilities/registration/NetworkRegistrationHelperTest.kt From c36bea3af521be69f7702d7b7abbbfac0258de1f Mon Sep 17 00:00:00 2001 From: Andrzej Cichocki Date: Thu, 7 Dec 2017 11:55:18 +0000 Subject: [PATCH 03/17] CORDA-654 MockServices no longer has hard-coded identities (#2192) * Resurrect a test * Fix a broken test * Pass in the initial identity * Make IdentityService easier to mock --- .../core/contracts/DummyContractV2Tests.kt | 13 +++++---- .../core/flows/CollectSignaturesFlowTests.kt | 2 +- .../TransactionSerializationTests.kt | 7 +++-- .../LedgerTransactionQueryTests.kt | 14 ++++++---- .../finance/contracts/CommercialPaperTests.kt | 19 ++++++------- .../finance/contracts/asset/CashTests.kt | 15 +++++++---- .../contracts/asset/ObligationTests.kt | 13 ++++++--- .../ContractAttachmentSerializerTest.kt | 6 ++--- .../net/corda/node/internal/AbstractNode.kt | 5 ++-- .../services/api/IdentityServiceInternal.kt | 11 ++++++++ .../identity/InMemoryIdentityService.kt | 4 +-- .../identity/PersistentIdentityService.kt | 4 +-- .../keys/E2ETestKeyManagementService.kt | 4 +-- .../net/corda/node/services/keys/KMSUtils.kt | 6 ++--- .../keys/PersistentKeyManagementService.kt | 4 +-- .../services/vault/VaultQueryJavaTests.java | 24 ++++++++--------- .../node/messaging/TwoPartyTradeFlowTests.kt | 27 ++++++++++++++----- .../persistence/HibernateConfigurationTest.kt | 15 ++++++----- .../services/vault/NodeVaultServiceTest.kt | 17 +++++++----- .../node/services/vault/VaultQueryTests.kt | 8 +++--- .../node/services/vault/VaultWithCashTest.kt | 6 ++--- .../corda/irs/api/NodeInterestRatesTest.kt | 7 ++--- .../kotlin/net/corda/irs/contract/IRSTests.kt | 16 +++++++---- .../traderdemo/TransactionGraphSearchTests.kt | 5 ++-- .../kotlin/net/corda/testing/NodeTestUtils.kt | 5 ++-- .../kotlin/net/corda/testing/node/MockNode.kt | 3 ++- .../net/corda/testing/node/MockServices.kt | 24 ++++++++--------- .../net/corda/loadtest/tests/NotaryTest.kt | 4 ++- 28 files changed, 168 insertions(+), 120 deletions(-) create mode 100644 node/src/main/kotlin/net/corda/node/services/api/IdentityServiceInternal.kt diff --git a/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt b/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt index 361fb6e876..29ad386359 100644 --- a/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt +++ b/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt @@ -1,13 +1,14 @@ package net.corda.core.contracts +import com.nhaarman.mockito_kotlin.doReturn +import com.nhaarman.mockito_kotlin.whenever +import net.corda.core.cordapp.CordappProvider import net.corda.core.crypto.SecureHash import net.corda.core.internal.UpgradeCommand -import net.corda.testing.ALICE -import net.corda.testing.DUMMY_NOTARY +import net.corda.core.node.ServicesForResolution +import net.corda.testing.* import net.corda.testing.contracts.DummyContract import net.corda.testing.contracts.DummyContractV2 -import net.corda.testing.node.MockServices -import net.corda.testing.SerializationEnvironmentRule import org.junit.Rule import org.junit.Test import kotlin.test.assertEquals @@ -23,7 +24,9 @@ class DummyContractV2Tests { @Test fun `upgrade from v1`() { - val services = MockServices() + val services = rigorousMock().also { + doReturn(rigorousMock()).whenever(it).cordappProvider + } val contractUpgrade = DummyContractV2() val v1State = TransactionState(DummyContract.SingleOwnerState(0, ALICE), DummyContract.PROGRAM_ID, DUMMY_NOTARY, constraint = AlwaysAcceptAttachmentConstraint) val v1Ref = StateRef(SecureHash.randomSHA256(), 0) diff --git a/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt b/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt index 0c2a00331b..d38e0fa841 100644 --- a/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt +++ b/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt @@ -129,7 +129,7 @@ class CollectSignaturesFlowTests { @Test fun `fails when not signed by initiator`() { val onePartyDummyContract = DummyContract.generateInitial(1337, notary, alice.ref(1)) - val miniCorpServices = MockServices(listOf("net.corda.testing.contracts"), MINI_CORP.name, MINI_CORP_KEY) + val miniCorpServices = MockServices(listOf("net.corda.testing.contracts"), rigorousMock(), MINI_CORP.name, MINI_CORP_KEY) val ptx = miniCorpServices.signInitialTransaction(onePartyDummyContract) val flow = aliceNode.services.startFlow(CollectSignaturesFlow(ptx, emptySet())) mockNet.runNetwork() diff --git a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt index efa87a441f..631af14bfd 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt @@ -49,9 +49,8 @@ class TransactionSerializationTests { val inputState = StateAndRef(TransactionState(TestCash.State(depositRef, 100.POUNDS, MEGA_CORP), TEST_CASH_PROGRAM_ID, DUMMY_NOTARY), fakeStateRef) val outputState = TransactionState(TestCash.State(depositRef, 600.POUNDS, MEGA_CORP), TEST_CASH_PROGRAM_ID, DUMMY_NOTARY) val changeState = TransactionState(TestCash.State(depositRef, 400.POUNDS, MEGA_CORP), TEST_CASH_PROGRAM_ID, DUMMY_NOTARY) - - val megaCorpServices = MockServices(listOf("net.corda.core.serialization"), MEGA_CORP.name, MEGA_CORP_KEY) - val notaryServices = MockServices(listOf("net.corda.core.serialization"), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) + val megaCorpServices = MockServices(listOf("net.corda.core.serialization"), rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) + val notaryServices = MockServices(listOf("net.corda.core.serialization"), rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) lateinit var tx: TransactionBuilder @Before @@ -95,7 +94,7 @@ class TransactionSerializationTests { Command(TestCash.Commands.Move(), DUMMY_KEY_2.public)) val ptx2 = notaryServices.signInitialTransaction(tx2) - val dummyServices = MockServices(DUMMY_KEY_2) + val dummyServices = MockServices(rigorousMock(), MEGA_CORP.name, DUMMY_KEY_2) val stx2 = dummyServices.addSignature(ptx2) stx.copy(sigs = stx2.sigs).verifyRequiredSignatures() diff --git a/core/src/test/kotlin/net/corda/core/transactions/LedgerTransactionQueryTests.kt b/core/src/test/kotlin/net/corda/core/transactions/LedgerTransactionQueryTests.kt index eba531f13a..d9a8e9bc10 100644 --- a/core/src/test/kotlin/net/corda/core/transactions/LedgerTransactionQueryTests.kt +++ b/core/src/test/kotlin/net/corda/core/transactions/LedgerTransactionQueryTests.kt @@ -1,14 +1,15 @@ package net.corda.core.transactions +import com.nhaarman.mockito_kotlin.doReturn +import com.nhaarman.mockito_kotlin.whenever import net.corda.core.contracts.* +import net.corda.core.crypto.generateKeyPair import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party -import net.corda.testing.DUMMY_NOTARY -import net.corda.testing.SerializationEnvironmentRule +import net.corda.node.services.api.IdentityServiceInternal +import net.corda.testing.* import net.corda.testing.contracts.DummyContract -import net.corda.testing.dummyCommand import net.corda.testing.node.MockServices -import net.corda.testing.singleIdentity import org.junit.Before import org.junit.Rule import org.junit.Test @@ -21,7 +22,10 @@ class LedgerTransactionQueryTests { @Rule @JvmField val testSerialization = SerializationEnvironmentRule() - private val services: MockServices = MockServices() + private val keyPair = generateKeyPair() + private val services = MockServices(rigorousMock().also { + doReturn(null).whenever(it).partyFromKey(keyPair.public) + }, MEGA_CORP.name, keyPair) private val identity: Party = services.myInfo.singleIdentity() @Before diff --git a/finance/src/test/kotlin/net/corda/finance/contracts/CommercialPaperTests.kt b/finance/src/test/kotlin/net/corda/finance/contracts/CommercialPaperTests.kt index 25d65f3dab..fc02955c6a 100644 --- a/finance/src/test/kotlin/net/corda/finance/contracts/CommercialPaperTests.kt +++ b/finance/src/test/kotlin/net/corda/finance/contracts/CommercialPaperTests.kt @@ -17,7 +17,6 @@ import net.corda.testing.contracts.VaultFiller import net.corda.testing.node.MockServices import net.corda.testing.node.MockServices.Companion.makeTestDatabaseAndMockServices import net.corda.testing.node.makeTestIdentityService -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -224,19 +223,16 @@ class CommercialPaperTestsGeneric { private lateinit var aliceServices: MockServices private lateinit var aliceVaultService: VaultService private lateinit var alicesVault: Vault - - private val notaryServices = MockServices(DUMMY_NOTARY_KEY) - private val issuerServices = MockServices(DUMMY_CASH_ISSUER_KEY) - + private val notaryServices = MockServices(rigorousMock(), MEGA_CORP.name, DUMMY_NOTARY_KEY) + private val issuerServices = MockServices(listOf("net.corda.finance.contracts"), rigorousMock(), MEGA_CORP.name, DUMMY_CASH_ISSUER_KEY) private lateinit var moveTX: SignedTransaction - - // @Test - @Ignore - fun `issue move and then redeem`() = withTestSerialization { + @Test + fun `issue move and then redeem`() { val aliceDatabaseAndServices = makeTestDatabaseAndMockServices( listOf(ALICE_KEY), makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), - initialIdentityName = MEGA_CORP.name) + listOf("net.corda.finance.contracts"), + MEGA_CORP.name) val databaseAlice = aliceDatabaseAndServices.first aliceServices = aliceDatabaseAndServices.second aliceVaultService = aliceServices.vaultService @@ -248,7 +244,8 @@ class CommercialPaperTestsGeneric { val bigCorpDatabaseAndServices = makeTestDatabaseAndMockServices( listOf(BIG_CORP_KEY), makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), - initialIdentityName = MEGA_CORP.name) + listOf("net.corda.finance.contracts"), + MEGA_CORP.name) val databaseBigCorp = bigCorpDatabaseAndServices.first bigCorpServices = bigCorpDatabaseAndServices.second bigCorpVaultService = bigCorpServices.vaultService diff --git a/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt b/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt index bfec19b57d..2cf9daa949 100644 --- a/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt +++ b/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt @@ -1,5 +1,6 @@ package net.corda.finance.contracts.asset +import com.nhaarman.mockito_kotlin.* import net.corda.core.contracts.* import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair @@ -18,6 +19,7 @@ import net.corda.finance.utils.sumCash import net.corda.finance.utils.sumCashBy import net.corda.finance.utils.sumCashOrNull import net.corda.finance.utils.sumCashOrZero +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.services.vault.NodeVaultService import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.testing.* @@ -67,9 +69,11 @@ class CashTests { @Before fun setUp() { LogHelper.setLevel(NodeVaultService::class) - megaCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), MEGA_CORP.name, MEGA_CORP_KEY) - miniCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), MINI_CORP.name, MINI_CORP_KEY) - val notaryServices = MockServices(listOf("net.corda.finance.contracts.asset"), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) + megaCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) + miniCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock().also { + doNothing().whenever(it).justVerifyAndRegisterIdentity(argThat { name == MINI_CORP.name }) + }, MINI_CORP.name, MINI_CORP_KEY) + val notaryServices = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) val databaseAndServices = makeTestDatabaseAndMockServices( listOf(generateKeyPair()), makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), @@ -774,8 +778,9 @@ class CashTests { // Double spend. @Test fun chainCashDoubleSpendFailsWith() { - val mockService = MockServices(listOf("net.corda.finance.contracts.asset"), MEGA_CORP.name, MEGA_CORP_KEY) - + val mockService = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock().also { + doReturn(MEGA_CORP).whenever(it).partyFromKey(MEGA_CORP_PUBKEY) + }, MEGA_CORP.name, MEGA_CORP_KEY) ledger(mockService) { unverifiedTransaction { attachment(Cash.PROGRAM_ID) diff --git a/finance/src/test/kotlin/net/corda/finance/contracts/asset/ObligationTests.kt b/finance/src/test/kotlin/net/corda/finance/contracts/asset/ObligationTests.kt index 22e7db887f..207955b0dd 100644 --- a/finance/src/test/kotlin/net/corda/finance/contracts/asset/ObligationTests.kt +++ b/finance/src/test/kotlin/net/corda/finance/contracts/asset/ObligationTests.kt @@ -1,5 +1,7 @@ package net.corda.finance.contracts.asset +import com.nhaarman.mockito_kotlin.doReturn +import com.nhaarman.mockito_kotlin.whenever import net.corda.core.contracts.* import net.corda.core.crypto.NullKeys.NULL_PARTY import net.corda.core.crypto.SecureHash @@ -15,6 +17,7 @@ import net.corda.finance.* import net.corda.finance.contracts.Commodity import net.corda.finance.contracts.NetType import net.corda.finance.contracts.asset.Obligation.Lifecycle +import net.corda.node.services.api.IdentityServiceInternal import net.corda.testing.* import net.corda.testing.contracts.DummyContract import net.corda.testing.contracts.DummyState @@ -51,9 +54,13 @@ class ObligationTests { beneficiary = CHARLIE ) private val outState = inState.copy(beneficiary = AnonymousParty(BOB_PUBKEY)) - private val miniCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), MINI_CORP.name, MINI_CORP_KEY) - private val notaryServices = MockServices(DUMMY_NOTARY_KEY) - private val mockService = MockServices(listOf("net.corda.finance.contracts.asset")) + private val miniCorpServices = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock(), MINI_CORP.name, MINI_CORP_KEY) + private val notaryServices = MockServices(rigorousMock(), MEGA_CORP.name, DUMMY_NOTARY_KEY) + private val mockService = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock().also { + doReturn(null).whenever(it).partyFromKey(ALICE_PUBKEY) + doReturn(null).whenever(it).partyFromKey(BOB_PUBKEY) + doReturn(MEGA_CORP).whenever(it).partyFromKey(MEGA_CORP_PUBKEY) + }, MEGA_CORP.name) private fun cashObligationTestRoots( group: LedgerDSL diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/ContractAttachmentSerializerTest.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/ContractAttachmentSerializerTest.kt index 0f9d2dd116..c542330ebd 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/ContractAttachmentSerializerTest.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/ContractAttachmentSerializerTest.kt @@ -2,7 +2,7 @@ package net.corda.nodeapi.internal.serialization import net.corda.core.contracts.ContractAttachment import net.corda.core.serialization.* -import net.corda.testing.SerializationEnvironmentRule +import net.corda.testing.* import net.corda.testing.contracts.DummyContract import net.corda.testing.node.MockServices import org.assertj.core.api.Assertions.assertThat @@ -22,9 +22,7 @@ class ContractAttachmentSerializerTest { private lateinit var factory: SerializationFactory private lateinit var context: SerializationContext private lateinit var contextWithToken: SerializationContext - - private val mockServices = MockServices() - + private val mockServices = MockServices(rigorousMock(), MEGA_CORP.name) @Before fun setup() { factory = testSerialization.env.serializationFactory diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 9aca690993..a20123f6b5 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -46,6 +46,7 @@ import net.corda.node.services.config.NotaryConfig import net.corda.node.services.config.configureWithDevSSLCertificate import net.corda.node.services.events.NodeSchedulerService import net.corda.node.services.events.ScheduledActivityObserver +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.services.identity.PersistentIdentityService import net.corda.node.services.keys.PersistentKeyManagementService import net.corda.node.services.messaging.MessagingService @@ -497,7 +498,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, * Builds node internal, advertised, and plugin services. * Returns a list of tokenizable services to be added to the serialisation context. */ - private fun makeServices(keyPairs: Set, schemaService: SchemaService, transactionStorage: WritableTransactionStorage, database: CordaPersistence, info: NodeInfo, identityService: IdentityService): MutableList { + private fun makeServices(keyPairs: Set, schemaService: SchemaService, transactionStorage: WritableTransactionStorage, database: CordaPersistence, info: NodeInfo, identityService: IdentityServiceInternal): MutableList { checkpointStorage = DBCheckpointStorage() val metrics = MetricRegistry() attachments = NodeAttachmentService(metrics) @@ -591,7 +592,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, } } - protected open fun makeKeyManagementService(identityService: IdentityService, keyPairs: Set): KeyManagementService { + protected open fun makeKeyManagementService(identityService: IdentityServiceInternal, keyPairs: Set): KeyManagementService { return PersistentKeyManagementService(identityService, keyPairs) } diff --git a/node/src/main/kotlin/net/corda/node/services/api/IdentityServiceInternal.kt b/node/src/main/kotlin/net/corda/node/services/api/IdentityServiceInternal.kt new file mode 100644 index 0000000000..5694a68940 --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/services/api/IdentityServiceInternal.kt @@ -0,0 +1,11 @@ +package net.corda.node.services.api + +import net.corda.core.identity.PartyAndCertificate +import net.corda.core.node.services.IdentityService + +interface IdentityServiceInternal : IdentityService { + /** This method exists so it can be mocked with doNothing, rather than having to make up a possibly invalid return value. */ + fun justVerifyAndRegisterIdentity(identity: PartyAndCertificate) { + verifyAndRegisterIdentity(identity) + } +} diff --git a/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt b/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt index 97e1c03adc..81cb4f75fb 100644 --- a/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt +++ b/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt @@ -5,11 +5,11 @@ import net.corda.core.crypto.toStringShort import net.corda.core.identity.* import net.corda.core.internal.cert import net.corda.core.internal.toX509CertHolder -import net.corda.core.node.services.IdentityService import net.corda.core.node.services.UnknownAnonymousPartyException import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.utilities.contextLogger import net.corda.core.utilities.trace +import net.corda.node.services.api.IdentityServiceInternal import net.corda.nodeapi.internal.crypto.X509CertificateFactory import org.bouncycastle.cert.X509CertificateHolder import java.security.InvalidAlgorithmParameterException @@ -25,7 +25,7 @@ import javax.annotation.concurrent.ThreadSafe */ @ThreadSafe class InMemoryIdentityService(identities: Iterable, - trustRoot: X509CertificateHolder) : SingletonSerializeAsToken(), IdentityService { + trustRoot: X509CertificateHolder) : SingletonSerializeAsToken(), IdentityServiceInternal { companion object { private val log = contextLogger() } diff --git a/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt b/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt index da2415aad0..66a5ea4024 100644 --- a/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt +++ b/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt @@ -6,12 +6,12 @@ import net.corda.core.crypto.toStringShort import net.corda.core.identity.* import net.corda.core.internal.cert import net.corda.core.internal.toX509CertHolder -import net.corda.core.node.services.IdentityService import net.corda.core.node.services.UnknownAnonymousPartyException import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.utilities.MAX_HASH_HEX_SIZE import net.corda.core.utilities.contextLogger import net.corda.core.utilities.debug +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.utilities.AppendOnlyPersistentMap import net.corda.nodeapi.internal.persistence.NODE_DATABASE_PREFIX import net.corda.nodeapi.internal.crypto.X509CertificateFactory @@ -27,7 +27,7 @@ import javax.persistence.Lob @ThreadSafe class PersistentIdentityService(override val trustRoot: X509Certificate, - vararg caCertificates: X509Certificate) : SingletonSerializeAsToken(), IdentityService { + vararg caCertificates: X509Certificate) : SingletonSerializeAsToken(), IdentityServiceInternal { constructor(trustRoot: X509CertificateHolder) : this(trustRoot.cert) companion object { diff --git a/node/src/main/kotlin/net/corda/node/services/keys/E2ETestKeyManagementService.kt b/node/src/main/kotlin/net/corda/node/services/keys/E2ETestKeyManagementService.kt index 0c0eb61778..34b1c94e46 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/E2ETestKeyManagementService.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/E2ETestKeyManagementService.kt @@ -3,9 +3,9 @@ package net.corda.node.services.keys import net.corda.core.crypto.* import net.corda.core.identity.PartyAndCertificate import net.corda.core.internal.ThreadBox -import net.corda.core.node.services.IdentityService import net.corda.core.node.services.KeyManagementService import net.corda.core.serialization.SingletonSerializeAsToken +import net.corda.node.services.api.IdentityServiceInternal import org.bouncycastle.operator.ContentSigner import java.security.KeyPair import java.security.PrivateKey @@ -25,7 +25,7 @@ import javax.annotation.concurrent.ThreadSafe * etc. */ @ThreadSafe -class E2ETestKeyManagementService(val identityService: IdentityService, +class E2ETestKeyManagementService(val identityService: IdentityServiceInternal, initialKeys: Set) : SingletonSerializeAsToken(), KeyManagementService { private class InnerState { val keys = HashMap() diff --git a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt index 6f520f37f1..694b2128c1 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt @@ -4,8 +4,8 @@ import net.corda.core.crypto.Crypto import net.corda.core.identity.PartyAndCertificate import net.corda.core.internal.cert import net.corda.core.internal.toX509CertHolder -import net.corda.core.node.services.IdentityService import net.corda.core.utilities.days +import net.corda.node.services.api.IdentityServiceInternal import net.corda.nodeapi.internal.crypto.CertificateType import net.corda.nodeapi.internal.crypto.ContentSignerBuilder import net.corda.nodeapi.internal.crypto.X509CertificateFactory @@ -28,7 +28,7 @@ import java.time.Duration * @param revocationEnabled whether to check revocation status of certificates in the certificate path. * @return X.509 certificate and path to the trust root. */ -fun freshCertificate(identityService: IdentityService, +fun freshCertificate(identityService: IdentityServiceInternal, subjectPublicKey: PublicKey, issuer: PartyAndCertificate, issuerSigner: ContentSigner, @@ -39,7 +39,7 @@ fun freshCertificate(identityService: IdentityService, issuerSigner, issuer.name, subjectPublicKey, window) val ourCertPath = X509CertificateFactory().delegate.generateCertPath(listOf(ourCertificate.cert) + issuer.certPath.certificates) val anonymisedIdentity = PartyAndCertificate(ourCertPath) - identityService.verifyAndRegisterIdentity(anonymisedIdentity) + identityService.justVerifyAndRegisterIdentity(anonymisedIdentity) return anonymisedIdentity } diff --git a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt index 96f41e9670..c72a20fcd8 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt @@ -2,10 +2,10 @@ package net.corda.node.services.keys import net.corda.core.crypto.* import net.corda.core.identity.PartyAndCertificate -import net.corda.core.node.services.IdentityService import net.corda.core.node.services.KeyManagementService import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.utilities.MAX_HASH_HEX_SIZE +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.utilities.AppendOnlyPersistentMap import net.corda.nodeapi.internal.persistence.NODE_DATABASE_PREFIX import org.bouncycastle.operator.ContentSigner @@ -24,7 +24,7 @@ import javax.persistence.Lob * * This class needs database transactions to be in-flight during method calls and init. */ -class PersistentKeyManagementService(val identityService: IdentityService, +class PersistentKeyManagementService(val identityService: IdentityServiceInternal, initialKeys: Set) : SingletonSerializeAsToken(), KeyManagementService { @Entity diff --git a/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java b/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java index 838370c38c..48aa58a07f 100644 --- a/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java +++ b/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java @@ -4,9 +4,9 @@ import com.google.common.collect.ImmutableSet; import kotlin.Pair; import kotlin.Triple; import net.corda.core.contracts.*; +import net.corda.core.crypto.CryptoUtils; import net.corda.core.identity.AbstractParty; import net.corda.core.messaging.DataFeed; -import net.corda.core.node.services.IdentityService; import net.corda.core.node.services.Vault; import net.corda.core.node.services.VaultQueryException; import net.corda.core.node.services.VaultService; @@ -14,11 +14,11 @@ import net.corda.core.node.services.vault.*; import net.corda.core.node.services.vault.QueryCriteria.LinearStateQueryCriteria; import net.corda.core.node.services.vault.QueryCriteria.VaultCustomQueryCriteria; import net.corda.core.node.services.vault.QueryCriteria.VaultQueryCriteria; -import net.corda.core.utilities.EncodingUtils; import net.corda.core.utilities.OpaqueBytes; import net.corda.finance.contracts.DealState; import net.corda.finance.contracts.asset.Cash; import net.corda.finance.schemas.CashSchemaV1; +import net.corda.node.services.api.IdentityServiceInternal; import net.corda.nodeapi.internal.persistence.CordaPersistence; import net.corda.nodeapi.internal.persistence.DatabaseTransaction; import net.corda.testing.SerializationEnvironmentRule; @@ -61,13 +61,13 @@ public class VaultQueryJavaTests { @Before public void setUp() throws CertificateException, InvalidAlgorithmParameterException { List cordappPackages = Arrays.asList("net.corda.testing.contracts", "net.corda.finance.contracts.asset", CashSchemaV1.class.getPackage().getName()); - IdentityService identitySvc = makeTestIdentityService(Arrays.asList(getMEGA_CORP_IDENTITY(), getDUMMY_CASH_ISSUER_IDENTITY(), getDUMMY_NOTARY_IDENTITY())); + IdentityServiceInternal identitySvc = makeTestIdentityService(Arrays.asList(getMEGA_CORP_IDENTITY(), getDUMMY_CASH_ISSUER_IDENTITY(), getDUMMY_NOTARY_IDENTITY())); Pair databaseAndServices = makeTestDatabaseAndMockServices( Arrays.asList(getMEGA_CORP_KEY(), getDUMMY_NOTARY_KEY()), identitySvc, cordappPackages, getMEGA_CORP().getName()); - issuerServices = new MockServices(cordappPackages, getDUMMY_CASH_ISSUER_NAME(), getDUMMY_CASH_ISSUER_KEY(), getBOC_KEY()); + issuerServices = new MockServices(cordappPackages, rigorousMock(IdentityServiceInternal.class), getDUMMY_CASH_ISSUER_NAME(), getDUMMY_CASH_ISSUER_KEY(), getBOC_KEY()); database = databaseAndServices.getFirst(); MockServices services = databaseAndServices.getSecond(); vaultFiller = new VaultFiller(services, getDUMMY_NOTARY(), getDUMMY_NOTARY_KEY()); @@ -449,30 +449,28 @@ public class VaultQueryJavaTests { // DOCSTART VaultJavaQueryExample23 Field pennies = CashSchemaV1.PersistentCashState.class.getDeclaredField("pennies"); Field currency = CashSchemaV1.PersistentCashState.class.getDeclaredField("currency"); - Field issuerParty = CashSchemaV1.PersistentCashState.class.getDeclaredField("issuerParty"); - - QueryCriteria sumCriteria = new VaultCustomQueryCriteria(Builder.sum(pennies, Arrays.asList(issuerParty, currency), Sort.Direction.DESC)); - + Field issuerPartyHash = CashSchemaV1.PersistentCashState.class.getDeclaredField("issuerPartyHash"); + QueryCriteria sumCriteria = new VaultCustomQueryCriteria(Builder.sum(pennies, Arrays.asList(issuerPartyHash, currency), Sort.Direction.DESC)); Vault.Page results = vaultService.queryBy(Cash.State.class, sumCriteria); // DOCEND VaultJavaQueryExample23 assertThat(results.getOtherResults()).hasSize(12); assertThat(results.getOtherResults().get(0)).isEqualTo(400L); - assertThat(results.getOtherResults().get(1)).isEqualTo(EncodingUtils.toBase58String(getBOC_PUBKEY())); + assertThat(results.getOtherResults().get(1)).isEqualTo(CryptoUtils.toStringShort(getBOC_PUBKEY())); assertThat(results.getOtherResults().get(2)).isEqualTo("GBP"); assertThat(results.getOtherResults().get(3)).isEqualTo(300L); - assertThat(results.getOtherResults().get(4)).isEqualTo(EncodingUtils.toBase58String(getDUMMY_CASH_ISSUER().getParty().getOwningKey())); + assertThat(results.getOtherResults().get(4)).isEqualTo(CryptoUtils.toStringShort(getDUMMY_CASH_ISSUER().getParty().getOwningKey())); assertThat(results.getOtherResults().get(5)).isEqualTo("GBP"); assertThat(results.getOtherResults().get(6)).isEqualTo(200L); - assertThat(results.getOtherResults().get(7)).isEqualTo(EncodingUtils.toBase58String(getBOC_PUBKEY())); + assertThat(results.getOtherResults().get(7)).isEqualTo(CryptoUtils.toStringShort(getBOC_PUBKEY())); assertThat(results.getOtherResults().get(8)).isEqualTo("USD"); assertThat(results.getOtherResults().get(9)).isEqualTo(100L); - assertThat(results.getOtherResults().get(10)).isEqualTo(EncodingUtils.toBase58String(getDUMMY_CASH_ISSUER().getParty().getOwningKey())); + assertThat(results.getOtherResults().get(10)).isEqualTo(CryptoUtils.toStringShort(getDUMMY_CASH_ISSUER().getParty().getOwningKey())); assertThat(results.getOtherResults().get(11)).isEqualTo("USD"); } catch (NoSuchFieldException e) { - e.printStackTrace(); + throw new RuntimeException(e); } return tx; }); diff --git a/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt b/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt index 145a7b933b..0daa972cc2 100644 --- a/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt +++ b/node/src/test/kotlin/net/corda/node/messaging/TwoPartyTradeFlowTests.kt @@ -1,6 +1,8 @@ package net.corda.node.messaging import co.paralleluniverse.fibers.Suspendable +import com.nhaarman.mockito_kotlin.doReturn +import com.nhaarman.mockito_kotlin.whenever import net.corda.core.concurrent.CordaFuture import net.corda.core.contracts.* import net.corda.core.crypto.* @@ -34,6 +36,7 @@ import net.corda.finance.flows.TwoPartyTradeFlow.Buyer import net.corda.finance.flows.TwoPartyTradeFlow.Seller import net.corda.node.internal.StartedNode import net.corda.node.services.api.WritableTransactionStorage +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.services.persistence.DBTransactionStorage import net.corda.node.services.persistence.checkpoints import net.corda.nodeapi.internal.persistence.CordaPersistence @@ -90,13 +93,15 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { // we run in the unit test thread exclusively to speed things up, ensure deterministic results and // allow interruption half way through. mockNet = MockNetwork(threadPerNode = true, cordappPackages = cordappPackages) - ledger(MockServices(cordappPackages)) { + val ledgerIdentityService = rigorousMock() + ledger(MockServices(cordappPackages, ledgerIdentityService, MEGA_CORP.name)) { val notaryNode = mockNet.defaultNotaryNode val aliceNode = mockNet.createPartyNode(ALICE_NAME) val bobNode = mockNet.createPartyNode(BOB_NAME) val bankNode = mockNet.createPartyNode(BOC_NAME) val alice = aliceNode.info.singleIdentity() val bank = bankNode.info.singleIdentity() + doReturn(null).whenever(ledgerIdentityService).partyFromKey(bank.owningKey) val bob = bobNode.info.singleIdentity() val notary = mockNet.defaultNotaryIdentity val cashIssuer = bank.ref(1) @@ -140,13 +145,15 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { @Test(expected = InsufficientBalanceException::class) fun `trade cash for commercial paper fails using soft locking`() { mockNet = MockNetwork(threadPerNode = true, cordappPackages = cordappPackages) - ledger(MockServices(cordappPackages)) { + val ledgerIdentityService = rigorousMock() + ledger(MockServices(cordappPackages, ledgerIdentityService, MEGA_CORP.name)) { val notaryNode = mockNet.defaultNotaryNode val aliceNode = mockNet.createPartyNode(ALICE_NAME) val bobNode = mockNet.createPartyNode(BOB_NAME) val bankNode = mockNet.createPartyNode(BOC_NAME) val alice = aliceNode.info.singleIdentity() val bank = bankNode.info.singleIdentity() + doReturn(null).whenever(ledgerIdentityService).partyFromKey(bank.owningKey) val bob = bobNode.info.singleIdentity() val issuer = bank.ref(1) val notary = mockNet.defaultNotaryIdentity @@ -196,7 +203,8 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { @Test fun `shutdown and restore`() { mockNet = MockNetwork(cordappPackages = cordappPackages) - ledger(MockServices(cordappPackages)) { + val ledgerIdentityService = rigorousMock() + ledger(MockServices(cordappPackages, ledgerIdentityService, MEGA_CORP.name)) { val notaryNode = mockNet.defaultNotaryNode val aliceNode = mockNet.createPartyNode(ALICE_NAME) var bobNode = mockNet.createPartyNode(BOB_NAME) @@ -210,6 +218,7 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { val notary = mockNet.defaultNotaryIdentity val alice = aliceNode.info.singleIdentity() val bank = bankNode.info.singleIdentity() + doReturn(null).whenever(ledgerIdentityService).partyFromKey(bank.owningKey) val bob = bobNode.info.singleIdentity() val issuer = bank.ref(1, 2, 3) @@ -491,16 +500,18 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { @Test fun `dependency with error on buyer side`() { mockNet = MockNetwork(cordappPackages = cordappPackages) - ledger(MockServices(cordappPackages)) { - runWithError(true, false, "at least one cash input") + val ledgerIdentityService = rigorousMock() + ledger(MockServices(cordappPackages, ledgerIdentityService, MEGA_CORP.name)) { + runWithError(ledgerIdentityService, true, false, "at least one cash input") } } @Test fun `dependency with error on seller side`() { mockNet = MockNetwork(cordappPackages = cordappPackages) - ledger(MockServices(cordappPackages)) { - runWithError(false, true, "Issuances have a time-window") + val ledgerIdentityService = rigorousMock() + ledger(MockServices(cordappPackages, ledgerIdentityService, MEGA_CORP.name)) { + runWithError(ledgerIdentityService, false, true, "Issuances have a time-window") } } @@ -562,6 +573,7 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { data class TestTx(val notaryIdentity: Party, val price: Amount, val anonymous: Boolean) private fun LedgerDSL.runWithError( + ledgerIdentityService: IdentityServiceInternal, bobError: Boolean, aliceError: Boolean, expectedMessageSubstring: String @@ -575,6 +587,7 @@ class TwoPartyTradeFlowTests(private val anonymous: Boolean) { val alice = aliceNode.info.singleIdentity() val bob = bobNode.info.singleIdentity() val bank = bankNode.info.singleIdentity() + doReturn(null).whenever(ledgerIdentityService).partyFromKey(bank.owningKey) val issuer = bank.ref(1, 2, 3) val bobsBadCash = bobNode.database.transaction { diff --git a/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt b/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt index 3d627eaf24..7c36962968 100644 --- a/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt @@ -1,8 +1,6 @@ package net.corda.node.services.persistence -import com.nhaarman.mockito_kotlin.any -import com.nhaarman.mockito_kotlin.doReturn -import com.nhaarman.mockito_kotlin.whenever +import com.nhaarman.mockito_kotlin.* import net.corda.core.contracts.Amount import net.corda.core.contracts.StateAndRef import net.corda.core.contracts.StateRef @@ -35,6 +33,7 @@ import net.corda.node.services.schema.HibernateObserver import net.corda.node.services.schema.NodeSchemaService import net.corda.node.services.vault.VaultSchemaV1 import net.corda.node.internal.configureDatabase +import net.corda.node.services.api.IdentityServiceInternal import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.nodeapi.internal.persistence.DatabaseConfig import net.corda.nodeapi.internal.persistence.HibernateConfiguration @@ -85,9 +84,9 @@ class HibernateConfigurationTest { @Before fun setUp() { val cordappPackages = listOf("net.corda.testing.contracts", "net.corda.finance.contracts.asset") - bankServices = MockServices(cordappPackages, BOC.name, BOC_KEY) - issuerServices = MockServices(cordappPackages, DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY) - notaryServices = MockServices(cordappPackages, DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) + bankServices = MockServices(cordappPackages, rigorousMock(), BOC.name, BOC_KEY) + issuerServices = MockServices(cordappPackages, rigorousMock(), DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY) + notaryServices = MockServices(cordappPackages, rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) notary = notaryServices.myInfo.singleIdentity() val dataSourceProps = makeTestDataSourceProperties() val identityService = rigorousMock().also { mock -> @@ -102,7 +101,9 @@ class HibernateConfigurationTest { database.transaction { hibernateConfig = database.hibernateConfig // `consumeCash` expects we can self-notarise transactions - services = object : MockServices(cordappPackages, BOB_NAME, generateKeyPair(), DUMMY_NOTARY_KEY) { + services = object : MockServices(cordappPackages, rigorousMock().also { + doNothing().whenever(it).justVerifyAndRegisterIdentity(argThat { name == BOB_NAME }) + }, BOB_NAME, generateKeyPair(), DUMMY_NOTARY_KEY) { override val vaultService = makeVaultService(database.hibernateConfig, schemaService) override fun recordTransactions(statesToRecord: StatesToRecord, txs: Iterable) { for (stx in txs) { diff --git a/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt index 94fae003e2..7bab864399 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt @@ -1,6 +1,9 @@ package net.corda.node.services.vault import co.paralleluniverse.fibers.Suspendable +import com.nhaarman.mockito_kotlin.argThat +import com.nhaarman.mockito_kotlin.doNothing +import com.nhaarman.mockito_kotlin.whenever import net.corda.core.contracts.Amount import net.corda.core.contracts.Issued import net.corda.core.contracts.StateAndRef @@ -34,6 +37,7 @@ import net.corda.finance.contracts.asset.DUMMY_CASH_ISSUER_NAME import net.corda.finance.contracts.getCashBalance import net.corda.finance.schemas.CashSchemaV1 import net.corda.finance.utils.sumCash +import net.corda.node.services.api.IdentityServiceInternal import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.testing.* import net.corda.testing.contracts.VaultFiller @@ -83,9 +87,8 @@ class NodeVaultServiceTest { vaultFiller = VaultFiller(services, DUMMY_NOTARY, DUMMY_NOTARY_KEY) // This is safe because MockServices only ever have a single identity identity = services.myInfo.singleIdentityAndCert() - issuerServices = MockServices(cordappPackages, DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY) - bocServices = MockServices(cordappPackages, BOC_NAME, BOC_KEY) - + issuerServices = MockServices(cordappPackages, rigorousMock(), DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY) + bocServices = MockServices(cordappPackages, rigorousMock(), BOC_NAME, BOC_KEY) services.identityService.verifyAndRegisterIdentity(DUMMY_CASH_ISSUER_IDENTITY) services.identityService.verifyAndRegisterIdentity(BOC_IDENTITY) } @@ -125,7 +128,7 @@ class NodeVaultServiceTest { assertThat(w1).hasSize(3) val originalVault = vaultService - val services2 = object : MockServices() { + val services2 = object : MockServices(rigorousMock(), MEGA_CORP.name) { override val vaultService: NodeVaultService get() = originalVault override fun recordTransactions(statesToRecord: StatesToRecord, txs: Iterable) { for (stx in txs) { @@ -468,7 +471,7 @@ class NodeVaultServiceTest { @Test fun addNoteToTransaction() { - val megaCorpServices = MockServices(cordappPackages, MEGA_CORP.name, MEGA_CORP_KEY) + val megaCorpServices = MockServices(cordappPackages, rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) database.transaction { val freshKey = identity.owningKey @@ -575,7 +578,9 @@ class NodeVaultServiceTest { val identity = services.myInfo.singleIdentityAndCert() assertEquals(services.identityService.partyFromKey(identity.owningKey), identity.party) val anonymousIdentity = services.keyManagementService.freshKeyAndCert(identity, false) - val thirdPartyServices = MockServices() + val thirdPartyServices = MockServices(rigorousMock().also { + doNothing().whenever(it).justVerifyAndRegisterIdentity(argThat { name == MEGA_CORP.name }) + }, MEGA_CORP.name) val thirdPartyIdentity = thirdPartyServices.keyManagementService.freshKeyAndCert(thirdPartyServices.myInfo.singleIdentityAndCert(), false) val amount = Amount(1000, Issued(BOC.ref(1), GBP)) diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt index ac7edb2c53..7f1563880b 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt @@ -89,7 +89,7 @@ class VaultQueryTests { services = databaseAndServices.second vaultFiller = VaultFiller(services, DUMMY_NOTARY, DUMMY_NOTARY_KEY) vaultFillerCashNotary = VaultFiller(services, DUMMY_NOTARY, DUMMY_NOTARY_KEY, CASH_NOTARY) - notaryServices = MockServices(cordappPackages, DUMMY_NOTARY.name, DUMMY_NOTARY_KEY, DUMMY_CASH_ISSUER_KEY, BOC_KEY, MEGA_CORP_KEY) + notaryServices = MockServices(cordappPackages, rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY, DUMMY_CASH_ISSUER_KEY, BOC_KEY, MEGA_CORP_KEY) identitySvc = services.identityService // Register all of the identities we're going to use (notaryServices.myInfo.legalIdentitiesAndCerts + BOC_IDENTITY + CASH_NOTARY_IDENTITY + MINI_CORP_IDENTITY + MEGA_CORP_IDENTITY).forEach { identity -> @@ -1324,15 +1324,15 @@ class VaultQueryTests { fun `unconsumed fungible assets for selected issuer parties`() { // GBP issuer val gbpCashIssuerName = CordaX500Name(organisation = "British Pounds Cash Issuer", locality = "London", country = "GB") - val gbpCashIssuerServices = MockServices(cordappPackages, gbpCashIssuerName, generateKeyPair()) + val gbpCashIssuerServices = MockServices(cordappPackages, rigorousMock(), gbpCashIssuerName, generateKeyPair()) val gbpCashIssuer = gbpCashIssuerServices.myInfo.singleIdentityAndCert() // USD issuer val usdCashIssuerName = CordaX500Name(organisation = "US Dollars Cash Issuer", locality = "New York", country = "US") - val usdCashIssuerServices = MockServices(cordappPackages, usdCashIssuerName, generateKeyPair()) + val usdCashIssuerServices = MockServices(cordappPackages, rigorousMock(), usdCashIssuerName, generateKeyPair()) val usdCashIssuer = usdCashIssuerServices.myInfo.singleIdentityAndCert() // CHF issuer val chfCashIssuerName = CordaX500Name(organisation = "Swiss Francs Cash Issuer", locality = "Zurich", country = "CH") - val chfCashIssuerServices = MockServices(cordappPackages, chfCashIssuerName, generateKeyPair()) + val chfCashIssuerServices = MockServices(cordappPackages, rigorousMock(), chfCashIssuerName, generateKeyPair()) val chfCashIssuer = chfCashIssuerServices.myInfo.singleIdentityAndCert() listOf(gbpCashIssuer, usdCashIssuer, chfCashIssuer).forEach { identity -> services.identityService.verifyAndRegisterIdentity(identity) diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt index 733082b183..451a82d9de 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt @@ -69,8 +69,8 @@ class VaultWithCashTest { database = databaseAndServices.first services = databaseAndServices.second vaultFiller = VaultFiller(services, DUMMY_NOTARY, DUMMY_NOTARY_KEY) - issuerServices = MockServices(cordappPackages, DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY, MEGA_CORP_KEY) - notaryServices = MockServices(cordappPackages, DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) + issuerServices = MockServices(cordappPackages, rigorousMock(), DUMMY_CASH_ISSUER_NAME, DUMMY_CASH_ISSUER_KEY, MEGA_CORP_KEY) + notaryServices = MockServices(cordappPackages, rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) notary = notaryServices.myInfo.legalIdentitiesAndCerts.single().party } @@ -101,7 +101,7 @@ class VaultWithCashTest { @Test fun `issue and spend total correctly and irrelevant ignored`() { - val megaCorpServices = MockServices(cordappPackages, MEGA_CORP.name, MEGA_CORP_KEY) + val megaCorpServices = MockServices(cordappPackages, rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) val freshKey = services.keyManagementService.freshKey() val usefulTX = diff --git a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/api/NodeInterestRatesTest.kt b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/api/NodeInterestRatesTest.kt index 97729cadf0..ad45bbfbc6 100644 --- a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/api/NodeInterestRatesTest.kt +++ b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/api/NodeInterestRatesTest.kt @@ -19,11 +19,8 @@ import net.corda.node.internal.configureDatabase import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.nodeapi.internal.persistence.DatabaseConfig import net.corda.testing.* -import net.corda.testing.node.MockNetwork -import net.corda.testing.node.MockNodeParameters -import net.corda.testing.node.MockServices +import net.corda.testing.node.* import net.corda.testing.node.MockServices.Companion.makeTestDataSourceProperties -import net.corda.testing.node.createMockCordaService import org.junit.After import org.junit.Assert.* import org.junit.Before @@ -50,7 +47,7 @@ class NodeInterestRatesTest { private val DUMMY_CASH_ISSUER_KEY = generateKeyPair() private val DUMMY_CASH_ISSUER = Party(CordaX500Name(organisation = "Cash issuer", locality = "London", country = "GB"), DUMMY_CASH_ISSUER_KEY.public) - private val services = MockServices(listOf("net.corda.finance.contracts.asset"), DUMMY_CASH_ISSUER.name, DUMMY_CASH_ISSUER_KEY, MEGA_CORP_KEY) + private val services = MockServices(listOf("net.corda.finance.contracts.asset"), rigorousMock(), DUMMY_CASH_ISSUER.name, DUMMY_CASH_ISSUER_KEY, MEGA_CORP_KEY) // This is safe because MockServices only ever have a single identity private val identity = services.myInfo.singleIdentity() diff --git a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt index c200bd7c88..4f35dcc18e 100644 --- a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt +++ b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt @@ -1,5 +1,7 @@ package net.corda.irs.contract +import com.nhaarman.mockito_kotlin.doReturn +import com.nhaarman.mockito_kotlin.whenever import net.corda.core.contracts.Amount import net.corda.core.contracts.UniqueIdentifier import net.corda.core.transactions.SignedTransaction @@ -18,6 +20,7 @@ import net.corda.finance.contracts.FixOf import net.corda.finance.contracts.Frequency import net.corda.finance.contracts.PaymentRule import net.corda.finance.contracts.Tenor +import net.corda.node.services.api.IdentityServiceInternal import net.corda.testing.* import net.corda.testing.node.MockServices import org.junit.Rule @@ -212,10 +215,9 @@ class IRSTests { @Rule @JvmField val testSerialization = SerializationEnvironmentRule() - private val megaCorpServices = MockServices(listOf("net.corda.irs.contract"), MEGA_CORP.name, MEGA_CORP_KEY) - private val miniCorpServices = MockServices(listOf("net.corda.irs.contract"), MINI_CORP.name, MINI_CORP_KEY) - private val notaryServices = MockServices(listOf("net.corda.irs.contract"), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) - + private val megaCorpServices = MockServices(listOf("net.corda.irs.contract"), rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) + private val miniCorpServices = MockServices(listOf("net.corda.irs.contract"), rigorousMock(), MINI_CORP.name, MINI_CORP_KEY) + private val notaryServices = MockServices(listOf("net.corda.irs.contract"), rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) @Test fun ok() { trade().verifies() @@ -311,7 +313,11 @@ class IRSTests { */ @Test fun generateIRSandFixSome() { - val services = MockServices(listOf("net.corda.irs.contract")) + val services = MockServices(listOf("net.corda.irs.contract"), rigorousMock().also { + listOf(MEGA_CORP, MINI_CORP).forEach { party -> + doReturn(party).whenever(it).partyFromKey(party.owningKey) + } + }, MEGA_CORP.name) var previousTXN = generateIRSTxn(1) previousTXN.toLedgerTransaction(services).verify() services.recordTransactions(previousTXN) diff --git a/samples/trader-demo/src/test/kotlin/net/corda/traderdemo/TransactionGraphSearchTests.kt b/samples/trader-demo/src/test/kotlin/net/corda/traderdemo/TransactionGraphSearchTests.kt index 0a893c54a6..dea21d50d3 100644 --- a/samples/trader-demo/src/test/kotlin/net/corda/traderdemo/TransactionGraphSearchTests.kt +++ b/samples/trader-demo/src/test/kotlin/net/corda/traderdemo/TransactionGraphSearchTests.kt @@ -36,9 +36,8 @@ class TransactionGraphSearchTests { * @param signer signer for the two transactions and their commands. */ fun buildTransactions(command: CommandData): GraphTransactionStorage { - val megaCorpServices = MockServices(listOf("net.corda.testing.contracts"), MEGA_CORP.name, MEGA_CORP_KEY) - val notaryServices = MockServices(listOf("net.corda.testing.contracts"), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) - + val megaCorpServices = MockServices(listOf("net.corda.testing.contracts"), rigorousMock(), MEGA_CORP.name, MEGA_CORP_KEY) + val notaryServices = MockServices(listOf("net.corda.testing.contracts"), rigorousMock(), DUMMY_NOTARY.name, DUMMY_NOTARY_KEY) val originBuilder = TransactionBuilder(DUMMY_NOTARY) .addOutputState(DummyState(random31BitValue()), DummyContract.PROGRAM_ID) .addCommand(command, MEGA_CORP_PUBKEY) diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/NodeTestUtils.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/NodeTestUtils.kt index 41b4e360ff..85fa0eef1f 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/NodeTestUtils.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/NodeTestUtils.kt @@ -23,6 +23,7 @@ import net.corda.node.services.config.VerifierType import net.corda.nodeapi.internal.config.User import net.corda.testing.node.MockServices import net.corda.testing.node.MockServices.Companion.makeTestDataSourceProperties +import net.corda.testing.node.makeTestIdentityService import java.nio.file.Path /** @@ -31,7 +32,7 @@ import java.nio.file.Path */ @JvmOverloads fun ledger( - services: ServiceHub = MockServices(), + services: ServiceHub = MockServices(makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), MEGA_CORP.name), dsl: LedgerDSL.() -> Unit ): LedgerDSL { return LedgerDSL(TestLedgerDSLInterpreter(services)).also { dsl(it) } @@ -47,7 +48,7 @@ fun transaction( transactionBuilder: TransactionBuilder = TransactionBuilder(notary = DUMMY_NOTARY), cordappPackages: List = emptyList(), dsl: TransactionDSL.() -> EnforceVerifyOrFail -) = ledger(services = MockServices(cordappPackages)) { +) = ledger(services = MockServices(cordappPackages, makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), MEGA_CORP.name)) { dsl(TransactionDSL(TestTransactionDSLInterpreter(this.interpreter, transactionBuilder))) } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt index 2b9a966e3a..aa3776c02c 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt @@ -29,6 +29,7 @@ import net.corda.node.services.api.SchemaService import net.corda.node.services.config.BFTSMaRtConfiguration import net.corda.node.services.config.NodeConfiguration import net.corda.node.services.config.NotaryConfig +import net.corda.node.services.api.IdentityServiceInternal import net.corda.node.services.keys.E2ETestKeyManagementService import net.corda.node.services.messaging.MessagingService import net.corda.node.services.transactions.BFTNonValidatingNotaryService @@ -274,7 +275,7 @@ class MockNetwork(defaultParameters: MockNetworkParameters = MockNetworkParamete network = messagingServiceSpy } - override fun makeKeyManagementService(identityService: IdentityService, keyPairs: Set): KeyManagementService { + override fun makeKeyManagementService(identityService: IdentityServiceInternal, keyPairs: Set): KeyManagementService { return E2ETestKeyManagementService(identityService, keyPairs) } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt index 0d119ddf12..f0870f6a32 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt @@ -27,6 +27,7 @@ import net.corda.node.services.schema.NodeSchemaService import net.corda.node.services.transactions.InMemoryTransactionVerifierService import net.corda.node.services.vault.NodeVaultService import net.corda.node.internal.configureDatabase +import net.corda.node.services.api.IdentityServiceInternal import net.corda.nodeapi.internal.persistence.CordaPersistence import net.corda.nodeapi.internal.persistence.DatabaseConfig import net.corda.nodeapi.internal.persistence.HibernateConfiguration @@ -46,10 +47,11 @@ fun makeTestIdentityService(identities: Iterable = emptySet * A singleton utility that only provides a mock identity, key and storage service. However, this is sufficient for * building chains of transactions and verifying them. It isn't sufficient for testing flows however. */ -open class MockServices( +open class MockServices private constructor( cordappLoader: CordappLoader, override val validatedTransactions: WritableTransactionStorage, - private val initialIdentityName: CordaX500Name = MEGA_CORP.name, + override val identityService: IdentityServiceInternal, + private val initialIdentityName: CordaX500Name, vararg val keys: KeyPair ) : ServiceHub, StateLoader by validatedTransactions { companion object { @@ -75,13 +77,13 @@ open class MockServices( /** * Makes database and mock services appropriate for unit tests. * @param keys a list of [KeyPair] instances to be used by [MockServices]. - * @param identityService an instance of [IdentityService], see [makeTestIdentityService]. + * @param identityService an instance of [IdentityServiceInternal], see [makeTestIdentityService]. * @param initialIdentityName the name of the first (typically sole) identity the services will represent. * @return a pair where the first element is the instance of [CordaPersistence] and the second is [MockServices]. */ @JvmStatic fun makeTestDatabaseAndMockServices(keys: List, - identityService: IdentityService, + identityService: IdentityServiceInternal, cordappPackages: List = emptyList(), initialIdentityName: CordaX500Name): Pair { val cordappLoader = CordappLoader.createWithTestPackages(cordappPackages) @@ -89,8 +91,7 @@ open class MockServices( val schemaService = NodeSchemaService(cordappLoader.cordappSchemas) val database = configureDatabase(dataSourceProps, DatabaseConfig(), identityService, schemaService) val mockService = database.transaction { - object : MockServices(cordappLoader, initialIdentityName = initialIdentityName, keys = *(keys.toTypedArray())) { - override val identityService get() = identityService + object : MockServices(cordappLoader, identityService, initialIdentityName, *(keys.toTypedArray())) { override val vaultService: VaultServiceInternal = makeVaultService(database.hibernateConfig, schemaService) override fun recordTransactions(statesToRecord: StatesToRecord, txs: Iterable) { @@ -106,10 +107,10 @@ open class MockServices( } } - constructor(cordappLoader: CordappLoader, initialIdentityName: CordaX500Name = MEGA_CORP.name, vararg keys: KeyPair) : this(cordappLoader, MockTransactionStorage(), initialIdentityName = initialIdentityName, keys = *keys) - constructor(cordappPackages: List, initialIdentityName: CordaX500Name = MEGA_CORP.name, vararg keys: KeyPair) : this(CordappLoader.createWithTestPackages(cordappPackages), initialIdentityName = initialIdentityName, keys = *keys) - constructor(vararg keys: KeyPair) : this(emptyList(), MEGA_CORP.name, *keys) - constructor() : this(generateKeyPair()) + private constructor(cordappLoader: CordappLoader, identityService: IdentityServiceInternal, initialIdentityName: CordaX500Name, vararg keys: KeyPair) : this(cordappLoader, MockTransactionStorage(), identityService, initialIdentityName, *keys) + constructor(cordappPackages: List, identityService: IdentityServiceInternal, initialIdentityName: CordaX500Name, vararg keys: KeyPair) : this(CordappLoader.createWithTestPackages(cordappPackages), identityService, initialIdentityName, *keys) + constructor(identityService: IdentityServiceInternal, initialIdentityName: CordaX500Name, vararg keys: KeyPair) : this(emptyList(), identityService, initialIdentityName, *keys) + constructor(identityService: IdentityServiceInternal, initialIdentityName: CordaX500Name) : this(identityService, initialIdentityName, generateKeyPair()) val key: KeyPair get() = keys.first() @@ -120,7 +121,6 @@ open class MockServices( } final override val attachments = MockAttachmentStorage() - override val identityService: IdentityService = makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)) override val keyManagementService: KeyManagementService by lazy { MockKeyManagementService(identityService, *keys) } override val vaultService: VaultService get() = throw UnsupportedOperationException() @@ -152,7 +152,7 @@ open class MockServices( override fun jdbcSession(): Connection = throw UnsupportedOperationException() } -class MockKeyManagementService(val identityService: IdentityService, +class MockKeyManagementService(val identityService: IdentityServiceInternal, vararg initialKeys: KeyPair) : SingletonSerializeAsToken(), KeyManagementService { private val keyStore: MutableMap = initialKeys.associateByTo(HashMap(), { it.public }, { it.private }) diff --git a/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt b/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt index b96f6f4f40..5c8900ebb3 100644 --- a/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt +++ b/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt @@ -10,8 +10,10 @@ import net.corda.finance.contracts.asset.DUMMY_CASH_ISSUER import net.corda.finance.contracts.asset.DUMMY_CASH_ISSUER_KEY import net.corda.loadtest.LoadTest import net.corda.loadtest.NodeConnection +import net.corda.testing.* import net.corda.testing.contracts.DummyContract import net.corda.testing.node.MockServices +import net.corda.testing.node.makeTestIdentityService import org.slf4j.LoggerFactory private val log = LoggerFactory.getLogger("NotaryTest") @@ -21,7 +23,7 @@ data class NotariseCommand(val issueTx: SignedTransaction, val moveTx: SignedTra val dummyNotarisationTest = LoadTest( "Notarising dummy transactions", generate = { _, _ -> - val issuerServices = MockServices(DUMMY_CASH_ISSUER_KEY) + val issuerServices = MockServices(makeTestIdentityService(listOf(MEGA_CORP_IDENTITY, MINI_CORP_IDENTITY, DUMMY_CASH_ISSUER_IDENTITY, DUMMY_NOTARY_IDENTITY)), MEGA_CORP.name, DUMMY_CASH_ISSUER_KEY) val generateTx = Generator.pickOne(simpleNodes).flatMap { node -> Generator.int().map { val issueBuilder = DummyContract.generateInitial(it, notary.info.legalIdentities[1], DUMMY_CASH_ISSUER) // TODO notary choice From e0abcda13b59bee477b47d66b25ccfaa023d96e9 Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Thu, 7 Dec 2017 16:39:52 +0000 Subject: [PATCH 04/17] Makes it clearer how to build a JAR. Removes ambiguous deployNodes content. --- docs/source/cordapp-build-systems.rst | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/source/cordapp-build-systems.rst b/docs/source/cordapp-build-systems.rst index bfbe08662c..f2561429c0 100644 --- a/docs/source/cordapp-build-systems.rst +++ b/docs/source/cordapp-build-systems.rst @@ -115,19 +115,24 @@ is already correctly configured and this is for reference only; Creating the CorDapp JAR ------------------------ -The gradle ``jar`` task included in the CorDapp template build file will automatically build your CorDapp JAR correctly -as long as your dependencies are set correctly. +Once your dependencies are set correctly, you can build your CorDapp JAR using the gradle ``jar`` task: + +* Unix/Mac OSX: ``./gradlew jar`` + +* Windows: ``gradlew.bat jar`` + +The CorDapp JAR will be output to the ``build/libs`` folder. .. warning:: The hash of the generated CorDapp JAR is not deterministic, as it depends on variables such as the timestamp at creation. Nodes running the same CorDapp must therefore ensure they are using the exact same CorDapp - jar, and not different versions of the JAR created from identical sources. + JAR, and not different versions of the JAR created from identical sources. The filename of the JAR must include a unique identifier to deduplicate it from other releases of the same CorDapp. This is typically done by appending the version string to the CorDapp's name. This unique identifier should not change once the JAR has been deployed on a node. If it does, make sure no one is relying on ``FlowContext.appName`` in their flows (see :doc:`versioning`). -Installing the CorDapp jar +Installing the CorDapp JAR -------------------------- .. note:: Before installing a CorDapp, you must create one or more nodes to install it on. For instructions, please see @@ -135,7 +140,4 @@ Installing the CorDapp jar At runtime, nodes will load any CorDapps present in their ``cordapps`` folder. Therefore in order to install a CorDapp on a node, the CorDapp JAR must be added to the ``/cordapps/`` folder, where ``node_dir`` is the folder in which -the node's JAR and configuration files are stored. - -The ``deployNodes`` gradle task, if correctly configured, will automatically place your CorDapp JAR as well as any -dependent CorDapp JARs specified into the ``cordapps`` folder automatically. \ No newline at end of file +the node's JAR and configuration files are stored. \ No newline at end of file From 13750849369e1315c31d6143c316e87db2ede87d Mon Sep 17 00:00:00 2001 From: Clinton Date: Thu, 7 Dec 2017 17:22:22 +0000 Subject: [PATCH 05/17] CORDA-840: Gradle plugins are now able to be published to artifactory. (#2203) Gradle plugins are now able to be published to artifactory. --- build.gradle | 4 ++- constants.properties | 1 + gradle-plugins/api-scanner/build.gradle | 1 + gradle-plugins/build.gradle | 37 ++++++++++++++++++--- gradle-plugins/cordapp/build.gradle | 1 + gradle-plugins/cordform-common/build.gradle | 1 + gradle-plugins/cordformation/build.gradle | 1 + gradle-plugins/publish-utils/build.gradle | 7 +++- gradle-plugins/quasar-utils/build.gradle | 1 + 9 files changed, 47 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index a1025ae5fc..e124945ddf 100644 --- a/build.gradle +++ b/build.gradle @@ -49,6 +49,7 @@ buildscript { ext.beanutils_version = '1.9.3' ext.crash_version = 'cce5a00f114343c1145c1d7756e1dd6df3ea984e' ext.jsr305_version = constants.getProperty("jsr305Version") + ext.artifactory_plugin_version = constants.getProperty('artifactoryPluginVersion') // Update 121 is required for ObjectInputFilter and at time of writing 131 was latest: ext.java8_minUpdateVersion = '131' @@ -72,6 +73,7 @@ buildscript { classpath "org.ajoberstar:grgit:1.1.0" classpath "net.i2p.crypto:eddsa:$eddsa_version" // Needed for ServiceIdentityGenerator in the build environment. classpath "org.owasp:dependency-check-gradle:${dependency_checker_version}" + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:$artifactory_plugin_version" } } @@ -80,7 +82,6 @@ plugins { // but the DSL has some restrictions e.g can't be used on the allprojects section. So we should revisit this if there are improvements in Gradle. // Version 1.0.2 of this plugin uses capsule:1.0.1 id "us.kirchmeier.capsule" version "1.0.2" - id "com.jfrog.artifactory" version "4.4.18" } ext { @@ -92,6 +93,7 @@ apply plugin: 'com.github.ben-manes.versions' apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'net.corda.plugins.cordformation' apply plugin: 'maven-publish' +apply plugin: 'com.jfrog.artifactory' // We need the following three lines even though they're inside an allprojects {} block below because otherwise // IntelliJ gets confused when importing the project and ends up erasing and recreating the .idea directory, along diff --git a/constants.properties b/constants.properties index 7ee707fd23..569b69133a 100644 --- a/constants.properties +++ b/constants.properties @@ -5,3 +5,4 @@ guavaVersion=21.0 bouncycastleVersion=1.57 typesafeConfigVersion=1.3.1 jsr305Version=3.0.2 +artifactoryPluginVersion=4.4.18 \ No newline at end of file diff --git a/gradle-plugins/api-scanner/build.gradle b/gradle-plugins/api-scanner/build.gradle index 85f7b4d0f9..c178472d58 100644 --- a/gradle-plugins/api-scanner/build.gradle +++ b/gradle-plugins/api-scanner/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'java' apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' description "Generates a summary of the artifact's public API" diff --git a/gradle-plugins/build.gradle b/gradle-plugins/build.gradle index bfab124a56..1e04813546 100644 --- a/gradle-plugins/build.gradle +++ b/gradle-plugins/build.gradle @@ -7,11 +7,14 @@ buildscript { file("$projectDir/../constants.properties").withInputStream { constants.load(it) } // If you bump this version you must re-bootstrap the codebase. See the README for more information. - ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion") - ext.bouncycastle_version = constants.getProperty("bouncycastleVersion") - ext.typesafe_config_version = constants.getProperty("typesafeConfigVersion") - ext.jsr305_version = constants.getProperty("jsr305Version") - ext.kotlin_version = constants.getProperty("kotlinVersion") + ext { + gradle_plugins_version = constants.getProperty("gradlePluginsVersion") + bouncycastle_version = constants.getProperty("bouncycastleVersion") + typesafe_config_version = constants.getProperty("typesafeConfigVersion") + jsr305_version = constants.getProperty("jsr305Version") + kotlin_version = constants.getProperty("kotlinVersion") + artifactory_plugin_version = constants.getProperty('artifactoryPluginVersion') + } repositories { mavenLocal() @@ -22,10 +25,12 @@ buildscript { classpath "net.corda.plugins:publish-utils:$gradle_plugins_version" classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:$artifactory_plugin_version" } } apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' allprojects { version gradle_plugins_version @@ -54,3 +59,25 @@ bintrayConfig { email = 'dev@corda.net' } } + +artifactory { + publish { + contextUrl = 'https://ci-artifactory.corda.r3cev.com/artifactory' + repository { + repoKey = 'corda-dev' + username = 'teamcity' + password = System.getenv('CORDA_ARTIFACTORY_PASSWORD') + } + + defaults { + // Publish utils does not have a publish block because it would be circular for it to apply it's own + // extensions to itself + if(project.name == 'publish-utils') { + publications('publishUtils') + // Root project applies the plugin (for this block) but does not need to be published + } else if(project != rootProject) { + publications(project.extensions.publish.name()) + } + } + } +} \ No newline at end of file diff --git a/gradle-plugins/cordapp/build.gradle b/gradle-plugins/cordapp/build.gradle index dc284faca1..3d1ecb6b53 100644 --- a/gradle-plugins/cordapp/build.gradle +++ b/gradle-plugins/cordapp/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'kotlin' apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' description 'Turns a project into a cordapp project that produces cordapp fat JARs' diff --git a/gradle-plugins/cordform-common/build.gradle b/gradle-plugins/cordform-common/build.gradle index 2423bcd773..3b9ab84805 100644 --- a/gradle-plugins/cordform-common/build.gradle +++ b/gradle-plugins/cordform-common/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'java' apply plugin: 'maven-publish' apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' repositories { mavenCentral() diff --git a/gradle-plugins/cordformation/build.gradle b/gradle-plugins/cordformation/build.gradle index 94eb8f3b7b..6c22f78a9e 100644 --- a/gradle-plugins/cordformation/build.gradle +++ b/gradle-plugins/cordformation/build.gradle @@ -10,6 +10,7 @@ buildscript { apply plugin: 'kotlin' apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' description 'A small gradle plugin for adding some basic Quasar tasks and configurations to reduce build.gradle bloat.' diff --git a/gradle-plugins/publish-utils/build.gradle b/gradle-plugins/publish-utils/build.gradle index fa302b9dc3..da9c659498 100644 --- a/gradle-plugins/publish-utils/build.gradle +++ b/gradle-plugins/publish-utils/build.gradle @@ -1,13 +1,17 @@ apply plugin: 'groovy' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' +apply plugin: 'com.jfrog.artifactory' // Used for bootstrapping project buildscript { Properties constants = new Properties() file("../../constants.properties").withInputStream { constants.load(it) } - ext.gradle_plugins_version = constants.getProperty("gradlePluginsVersion") + ext { + gradle_plugins_version = constants.getProperty("gradlePluginsVersion") + artifactory_plugin_version = constants.getProperty('artifactoryPluginVersion') + } repositories { jcenter() @@ -15,6 +19,7 @@ buildscript { dependencies { classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:$artifactory_plugin_version" } } diff --git a/gradle-plugins/quasar-utils/build.gradle b/gradle-plugins/quasar-utils/build.gradle index 7829d47d75..8f9eca30f2 100644 --- a/gradle-plugins/quasar-utils/build.gradle +++ b/gradle-plugins/quasar-utils/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'groovy' apply plugin: 'maven-publish' apply plugin: 'net.corda.plugins.publish-utils' +apply plugin: 'com.jfrog.artifactory' description 'A small gradle plugin for adding some basic Quasar tasks and configurations to reduce build.gradle bloat.' From ce859178ebbc6586d55855de48b1bfa75d6487ca Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Thu, 7 Dec 2017 18:12:25 +0000 Subject: [PATCH 06/17] Correct identities passed to generateSpend (#2199) Pass well known identities instead of confidential into `generateSpend()` --- .../net/corda/finance/contracts/asset/CashTests.kt | 9 +++------ .../corda/node/services/vault/NodeVaultServiceTest.kt | 6 +++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt b/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt index 2cf9daa949..bb027e880c 100644 --- a/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt +++ b/finance/src/test/kotlin/net/corda/finance/contracts/asset/CashTests.kt @@ -506,10 +506,9 @@ class CashTests { private fun makeSpend(services: ServiceHub, amount: Amount, dest: AbstractParty): WireTransaction { val ourIdentity = services.myInfo.singleIdentityAndCert() - val changeIdentity = services.keyManagementService.freshKeyAndCert(ourIdentity, false) val tx = TransactionBuilder(DUMMY_NOTARY) database.transaction { - Cash.generateSpend(services, tx, amount, changeIdentity, dest) + Cash.generateSpend(services, tx, amount, ourIdentity, dest) } return tx.toWireTransaction(services) } @@ -605,11 +604,10 @@ class CashTests { @Test fun generateSimpleSpendWithParties() { - val changeIdentity = ourServices.keyManagementService.freshKeyAndCert(ourServices.myInfo.singleIdentityAndCert(), false) database.transaction { val tx = TransactionBuilder(DUMMY_NOTARY) - Cash.generateSpend(ourServices, tx, 80.DOLLARS, changeIdentity, ALICE, setOf(MINI_CORP)) + Cash.generateSpend(ourServices, tx, 80.DOLLARS, ourServices.myInfo.singleIdentityAndCert(), ALICE, setOf(MINI_CORP)) assertEquals(vaultStatesUnconsumed.elementAt(2).ref, tx.inputStates()[0]) } @@ -818,12 +816,11 @@ class CashTests { fun multiSpend() { val tx = TransactionBuilder(DUMMY_NOTARY) database.transaction { - val changeIdentity = ourServices.keyManagementService.freshKeyAndCert(ourServices.myInfo.singleIdentityAndCert(), false) val payments = listOf( PartyAndAmount(miniCorpAnonymised, 400.DOLLARS), PartyAndAmount(CHARLIE_ANONYMISED, 150.DOLLARS) ) - Cash.generateSpend(ourServices, tx, payments, changeIdentity) + Cash.generateSpend(ourServices, tx, payments, ourServices.myInfo.singleIdentityAndCert()) } val wtx = tx.toWireTransaction(ourServices) fun out(i: Int) = wtx.getOutput(i) as Cash.State diff --git a/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt index 7bab864399..8002741b5c 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/NodeVaultServiceTest.kt @@ -531,6 +531,7 @@ class NodeVaultServiceTest { val identity = services.myInfo.singleIdentityAndCert() val anonymousIdentity = services.keyManagementService.freshKeyAndCert(identity, false) + // We use a random key pair to pay to here, as we don't actually use the cash once sent val thirdPartyIdentity = AnonymousParty(generateKeyPair().public) val amount = Amount(1000, Issued(BOC.ref(1), GBP)) @@ -550,8 +551,7 @@ class NodeVaultServiceTest { database.transaction { val moveBuilder = TransactionBuilder(notary).apply { - val changeIdentity = services.keyManagementService.freshKeyAndCert(identity, false) - Cash.generateSpend(services, this, Amount(1000, GBP), changeIdentity, thirdPartyIdentity) + Cash.generateSpend(services, this, Amount(1000, GBP), identity, thirdPartyIdentity) } val moveTx = moveBuilder.toWireTransaction(services) vaultService.notify(StatesToRecord.ONLY_RELEVANT, moveTx) @@ -610,7 +610,7 @@ class NodeVaultServiceTest { // Move cash val moveTxBuilder = database.transaction { TransactionBuilder(newNotary).apply { - Cash.generateSpend(services, this, Amount(amount.quantity, GBP), anonymousIdentity, thirdPartyIdentity.party.anonymise()) + Cash.generateSpend(services, this, Amount(amount.quantity, GBP), identity, thirdPartyIdentity.party.anonymise()) } } val moveTx = moveTxBuilder.toWireTransaction(services) From 32ea59d085856849dc0d1ae00018eb893ef1c89a Mon Sep 17 00:00:00 2001 From: Andrzej Cichocki Date: Fri, 8 Dec 2017 10:45:22 +0000 Subject: [PATCH 07/17] Inline some DUMMY constants. (#2200) --- .../core/serialization/TransactionSerializationTests.kt | 3 ++- .../serialization/UniquenessExceptionSerializationTest.kt | 7 +++++-- .../corda/core/transactions/CompatibleTransactionTests.kt | 5 +++++ .../kotlin/net/corda/core/transactions/TransactionTests.kt | 5 +++++ .../corda/node/services/events/NodeSchedulerServiceTest.kt | 5 +++-- .../src/test/kotlin/net/corda/irs/contract/IRSTests.kt | 4 ++++ .../src/main/kotlin/net/corda/testing/TestConstants.kt | 7 ------- 7 files changed, 24 insertions(+), 12 deletions(-) diff --git a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt index 631af14bfd..bfdc34d30a 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/TransactionSerializationTests.kt @@ -1,6 +1,7 @@ package net.corda.core.serialization import net.corda.core.contracts.* +import net.corda.core.crypto.generateKeyPair import net.corda.core.identity.AbstractParty import net.corda.core.transactions.LedgerTransaction import net.corda.core.transactions.TransactionBuilder @@ -87,7 +88,7 @@ class TransactionSerializationTests { assertFailsWith(IllegalArgumentException::class) { stx.copy(sigs = emptyList()) } - + val DUMMY_KEY_2 = generateKeyPair() // If the signature was replaced in transit, we don't like it. assertFailsWith(SignatureException::class) { val tx2 = TransactionBuilder(DUMMY_NOTARY).withItems(inputState, outputState, changeState, diff --git a/core/src/test/kotlin/net/corda/core/serialization/UniquenessExceptionSerializationTest.kt b/core/src/test/kotlin/net/corda/core/serialization/UniquenessExceptionSerializationTest.kt index 8c431b4e20..d0da8a2bcb 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/UniquenessExceptionSerializationTest.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/UniquenessExceptionSerializationTest.kt @@ -2,9 +2,11 @@ package net.corda.core.serialization import net.corda.core.contracts.StateRef import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.generateKeyPair +import net.corda.core.identity.CordaX500Name +import net.corda.core.identity.Party import net.corda.core.node.services.UniquenessException import net.corda.core.node.services.UniquenessProvider -import net.corda.testing.DUMMY_PARTY import net.corda.testing.SerializationEnvironmentRule import org.junit.Rule import org.junit.Test @@ -19,7 +21,8 @@ class UniquenessExceptionSerializationTest { fun testSerializationRoundTrip() { val txhash = SecureHash.randomSHA256() val txHash2 = SecureHash.randomSHA256() - val stateHistory: Map = mapOf(StateRef(txhash, 0) to UniquenessProvider.ConsumingTx(txHash2, 1, DUMMY_PARTY)) + val dummyParty = Party(CordaX500Name("Dummy", "Madrid", "ES"), generateKeyPair().public) + val stateHistory: Map = mapOf(StateRef(txhash, 0) to UniquenessProvider.ConsumingTx(txHash2, 1, dummyParty)) val conflict = UniquenessProvider.Conflict(stateHistory) val instance = UniquenessException(conflict) diff --git a/core/src/test/kotlin/net/corda/core/transactions/CompatibleTransactionTests.kt b/core/src/test/kotlin/net/corda/core/transactions/CompatibleTransactionTests.kt index 7464126983..5461d280a1 100644 --- a/core/src/test/kotlin/net/corda/core/transactions/CompatibleTransactionTests.kt +++ b/core/src/test/kotlin/net/corda/core/transactions/CompatibleTransactionTests.kt @@ -15,6 +15,11 @@ import java.util.function.Predicate import kotlin.test.* class CompatibleTransactionTests { + private companion object { + val DUMMY_KEY_1 = generateKeyPair() + val DUMMY_KEY_2 = generateKeyPair() + } + @Rule @JvmField val testSerialization = SerializationEnvironmentRule() diff --git a/core/src/test/kotlin/net/corda/core/transactions/TransactionTests.kt b/core/src/test/kotlin/net/corda/core/transactions/TransactionTests.kt index 17cc1bb769..c5a4976876 100644 --- a/core/src/test/kotlin/net/corda/core/transactions/TransactionTests.kt +++ b/core/src/test/kotlin/net/corda/core/transactions/TransactionTests.kt @@ -16,6 +16,11 @@ import kotlin.test.assertFailsWith import kotlin.test.assertNotEquals class TransactionTests { + private companion object { + val DUMMY_KEY_1 = generateKeyPair() + val DUMMY_KEY_2 = generateKeyPair() + } + @Rule @JvmField val testSerialization = SerializationEnvironmentRule() diff --git a/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt index 2f686cf17f..c73f0a893a 100644 --- a/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/events/NodeSchedulerServiceTest.kt @@ -4,6 +4,7 @@ import co.paralleluniverse.fibers.Suspendable import com.codahale.metrics.MetricRegistry import com.nhaarman.mockito_kotlin.* import net.corda.core.contracts.* +import net.corda.core.crypto.generateKeyPair import net.corda.core.flows.FlowLogic import net.corda.core.flows.FlowLogicRef import net.corda.core.flows.FlowLogicRefFactory @@ -20,7 +21,6 @@ import net.corda.node.internal.cordapp.CordappLoader import net.corda.node.internal.cordapp.CordappProviderImpl import net.corda.node.services.api.MonitoringService import net.corda.node.services.api.ServiceHubInternal -import net.corda.node.services.identity.InMemoryIdentityService import net.corda.node.services.network.NetworkMapCacheImpl import net.corda.node.services.persistence.DBCheckpointStorage import net.corda.node.services.statemachine.FlowLogicRefFactoryImpl @@ -50,6 +50,7 @@ import kotlin.test.assertTrue class NodeSchedulerServiceTest : SingletonSerializeAsToken() { companion object { + private val DUMMY_IDENTITY_1 = getTestPartyAndCertificate(Party(CordaX500Name("Dummy", "Madrid", "ES"), generateKeyPair().public)) private val myInfo = NodeInfo(listOf(MOCK_HOST_AND_PORT), listOf(DUMMY_IDENTITY_1), 1, serial = 1L) } @@ -292,7 +293,7 @@ class NodeSchedulerServiceTest : SingletonSerializeAsToken() { database.transaction { apply { val freshKey = kms.freshKey() - val state = TestState(FlowLogicRefFactoryImpl.createForRPC(TestFlowLogic::class.java, increment), instant, myInfo.chooseIdentity()) + val state = TestState(FlowLogicRefFactoryImpl.createForRPC(TestFlowLogic::class.java, increment), instant, DUMMY_IDENTITY_1.party) val builder = TransactionBuilder(null).apply { addOutputState(state, DummyContract.PROGRAM_ID, DUMMY_NOTARY) addCommand(Command(), freshKey) diff --git a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt index 4f35dcc18e..9dd3180bd8 100644 --- a/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt +++ b/samples/irs-demo/cordapp/src/test/kotlin/net/corda/irs/contract/IRSTests.kt @@ -4,6 +4,9 @@ import com.nhaarman.mockito_kotlin.doReturn import com.nhaarman.mockito_kotlin.whenever import net.corda.core.contracts.Amount import net.corda.core.contracts.UniqueIdentifier +import net.corda.core.crypto.generateKeyPair +import net.corda.core.identity.CordaX500Name +import net.corda.core.identity.Party import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder import net.corda.core.utilities.seconds @@ -30,6 +33,7 @@ import java.time.LocalDate import java.util.* import kotlin.test.assertEquals +private val DUMMY_PARTY = Party(CordaX500Name("Dummy", "Madrid", "ES"), generateKeyPair().public) fun createDummyIRS(irsSelect: Int): InterestRateSwap.State { return when (irsSelect) { 1 -> { diff --git a/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt b/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt index 96f452e74c..83ec0a0bd1 100644 --- a/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt +++ b/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt @@ -22,10 +22,6 @@ import java.time.Instant // A dummy time at which we will be pretending test transactions are created. val TEST_TX_TIME: Instant get() = Instant.parse("2015-04-17T12:00:00.00Z") - -val DUMMY_KEY_1: KeyPair by lazy { generateKeyPair() } -val DUMMY_KEY_2: KeyPair by lazy { generateKeyPair() } - val DUMMY_NOTARY_KEY: KeyPair by lazy { entropyToKeyPair(BigInteger.valueOf(20)) } /** Dummy notary identity for tests and simulations */ val DUMMY_NOTARY_IDENTITY: PartyAndCertificate get() = getTestPartyAndCertificate(DUMMY_NOTARY) @@ -79,6 +75,3 @@ val DEV_TRUST_ROOT: X509CertificateHolder by lazy { fun dummyCommand(vararg signers: PublicKey = arrayOf(generateKeyPair().public)) = Command(DummyCommandData, signers.toList()) object DummyCommandData : TypeOnlyCommandData() - -val DUMMY_IDENTITY_1: PartyAndCertificate get() = getTestPartyAndCertificate(DUMMY_PARTY) -val DUMMY_PARTY: Party get() = Party(CordaX500Name(organisation = "Dummy", locality = "Madrid", country = "ES"), DUMMY_KEY_1.public) From e6adbe71374add97b27197e444328dc15fac8dc1 Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Fri, 8 Dec 2017 13:17:29 +0000 Subject: [PATCH 08/17] CORDA-831: Add confidential identity certificate type (#2198) * Rename certificate types * Create separate certificate type for confidential identities * Add name constraints to dev node CA * Move dev node CA into getTestPartyAndCertificate() --- .../corda/core/crypto/CompositeKeyTests.kt | 2 +- .../internal/crypto/KeyStoreWrapper.kt | 3 +-- .../nodeapi/internal/crypto/X509Utilities.kt | 12 +++++++-- .../net/corda/node/services/keys/KMSUtils.kt | 2 +- .../utilities/ServiceIdentityGenerator.kt | 4 +-- .../identity/InMemoryIdentityServiceTests.kt | 15 ++++++----- .../PersistentIdentityServiceTests.kt | 19 +++++++------- .../services/network/TestNodeInfoFactory.kt | 2 +- .../node/utilities/TLSAuthenticationTests.kt | 4 +-- .../kotlin/net/corda/testing/CoreTestUtils.kt | 25 +++++++++++++++---- .../kotlin/net/corda/testing/TestConstants.kt | 11 +++++--- 11 files changed, 61 insertions(+), 38 deletions(-) diff --git a/core/src/test/kotlin/net/corda/core/crypto/CompositeKeyTests.kt b/core/src/test/kotlin/net/corda/core/crypto/CompositeKeyTests.kt index 88724674f1..12ea44c72b 100644 --- a/core/src/test/kotlin/net/corda/core/crypto/CompositeKeyTests.kt +++ b/core/src/test/kotlin/net/corda/core/crypto/CompositeKeyTests.kt @@ -337,7 +337,7 @@ class CompositeKeyTests { val ca = X509Utilities.createSelfSignedCACertificate(caName, caKeyPair) // Sign the composite key with the self sign CA. - val compositeKeyCert = X509Utilities.createCertificate(CertificateType.IDENTITY, ca, caKeyPair, caName.copy(commonName = "CompositeKey"), compositeKey) + val compositeKeyCert = X509Utilities.createCertificate(CertificateType.WELL_KNOWN_IDENTITY, ca, caKeyPair, caName.copy(commonName = "CompositeKey"), compositeKey) // Store certificate to keystore. val keystorePath = tempFolder.root.toPath() / "keystore.jks" diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/KeyStoreWrapper.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/KeyStoreWrapper.kt index 3e0d526a58..2552e38cbb 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/KeyStoreWrapper.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/KeyStoreWrapper.kt @@ -8,7 +8,6 @@ import java.security.KeyPair import java.security.PublicKey import java.security.cert.CertPath import java.security.cert.Certificate -import java.security.cert.CertificateFactory class KeyStoreWrapper(private val storePath: Path, private val storePassword: String) { private val keyStore = storePath.read { loadKeyStore(it, storePassword) } @@ -18,7 +17,7 @@ class KeyStoreWrapper(private val storePath: Path, private val storePassword: St // Assume key password = store password. val clientCA = certificateAndKeyPair(X509Utilities.CORDA_CLIENT_CA) // Create new keys and store in keystore. - val cert = X509Utilities.createCertificate(CertificateType.IDENTITY, clientCA.certificate, clientCA.keyPair, serviceName, pubKey) + val cert = X509Utilities.createCertificate(CertificateType.WELL_KNOWN_IDENTITY, clientCA.certificate, clientCA.keyPair, serviceName, pubKey) val certPath = X509CertificateFactory().delegate.generateCertPath(listOf(cert.cert) + clientCertPath) require(certPath.certificates.isNotEmpty()) { "Certificate path cannot be empty" } // TODO: X509Utilities.validateCertificateChain() diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt index def4ee9879..b739a4bc5c 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/crypto/X509Utilities.kt @@ -332,7 +332,7 @@ enum class CertificateType(val keyUsage: KeyUsage, vararg val purposes: KeyPurpo isCA = true ), - CLIENT_CA( + NODE_CA( KeyUsage(KeyUsage.digitalSignature or KeyUsage.keyCertSign or KeyUsage.cRLSign), KeyPurposeId.id_kp_serverAuth, KeyPurposeId.id_kp_clientAuth, @@ -349,12 +349,20 @@ enum class CertificateType(val keyUsage: KeyUsage, vararg val purposes: KeyPurpo ), // TODO: Identity certs should have only limited depth (i.e. 1) CA signing capability, with tight name constraints - IDENTITY( + WELL_KNOWN_IDENTITY( KeyUsage(KeyUsage.digitalSignature or KeyUsage.keyCertSign), KeyPurposeId.id_kp_serverAuth, KeyPurposeId.id_kp_clientAuth, KeyPurposeId.anyExtendedKeyUsage, isCA = true + ), + + CONFIDENTIAL_IDENTITY( + KeyUsage(KeyUsage.digitalSignature), + KeyPurposeId.id_kp_serverAuth, + KeyPurposeId.id_kp_clientAuth, + KeyPurposeId.anyExtendedKeyUsage, + isCA = false ) } diff --git a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt index 694b2128c1..619bb8c9cd 100644 --- a/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt +++ b/node/src/main/kotlin/net/corda/node/services/keys/KMSUtils.kt @@ -35,7 +35,7 @@ fun freshCertificate(identityService: IdentityServiceInternal, revocationEnabled: Boolean = false): PartyAndCertificate { val issuerCert = issuer.certificate.toX509CertHolder() val window = X509Utilities.getCertificateValidityWindow(Duration.ZERO, 3650.days, issuerCert) - val ourCertificate = X509Utilities.createCertificate(CertificateType.IDENTITY, issuerCert.subject, + val ourCertificate = X509Utilities.createCertificate(CertificateType.WELL_KNOWN_IDENTITY, issuerCert.subject, issuerSigner, issuer.name, subjectPublicKey, window) val ourCertPath = X509CertificateFactory().delegate.generateCertPath(listOf(ourCertificate.cert) + issuer.certPath.certificates) val anonymisedIdentity = PartyAndCertificate(ourCertPath) diff --git a/node/src/main/kotlin/net/corda/node/utilities/ServiceIdentityGenerator.kt b/node/src/main/kotlin/net/corda/node/utilities/ServiceIdentityGenerator.kt index a0aad8c6d2..4bb48e34c9 100644 --- a/node/src/main/kotlin/net/corda/node/utilities/ServiceIdentityGenerator.kt +++ b/node/src/main/kotlin/net/corda/node/utilities/ServiceIdentityGenerator.kt @@ -35,8 +35,8 @@ object ServiceIdentityGenerator { val rootCert = caKeyStore.getCertificate(X509Utilities.CORDA_ROOT_CA) keyPairs.zip(dirs) { keyPair, dir -> - val serviceKeyCert = X509Utilities.createCertificate(CertificateType.CLIENT_CA, issuer.certificate, issuer.keyPair, serviceName, keyPair.public) - val compositeKeyCert = X509Utilities.createCertificate(CertificateType.CLIENT_CA, issuer.certificate, issuer.keyPair, serviceName, notaryKey) + val serviceKeyCert = X509Utilities.createCertificate(CertificateType.NODE_CA, issuer.certificate, issuer.keyPair, serviceName, keyPair.public) + val compositeKeyCert = X509Utilities.createCertificate(CertificateType.NODE_CA, issuer.certificate, issuer.keyPair, serviceName, notaryKey) val certPath = (dir / "certificates").createDirectories() / "distributedService.jks" val keystore = loadOrCreateKeyStore(certPath, "cordacadevpass") val serviceId = serviceName.commonName diff --git a/node/src/test/kotlin/net/corda/node/services/identity/InMemoryIdentityServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/identity/InMemoryIdentityServiceTests.kt index 9ed1ed2a4a..782c0fdf53 100644 --- a/node/src/test/kotlin/net/corda/node/services/identity/InMemoryIdentityServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/identity/InMemoryIdentityServiceTests.kt @@ -9,7 +9,6 @@ import net.corda.core.identity.PartyAndCertificate import net.corda.core.internal.cert import net.corda.core.internal.toX509CertHolder import net.corda.core.node.services.UnknownAnonymousPartyException -import net.corda.nodeapi.internal.crypto.CertificateAndKeyPair import net.corda.nodeapi.internal.crypto.CertificateType import net.corda.nodeapi.internal.crypto.X509CertificateFactory import net.corda.nodeapi.internal.crypto.X509Utilities @@ -108,8 +107,8 @@ class InMemoryIdentityServiceTests { */ @Test fun `get anonymous identity by key`() { - val (alice, aliceTxIdentity) = createParty(ALICE.name, DEV_CA) - val (_, bobTxIdentity) = createParty(ALICE.name, DEV_CA) + val (alice, aliceTxIdentity) = createConfidentialIdentity(ALICE.name) + val (_, bobTxIdentity) = createConfidentialIdentity(ALICE.name) // Now we have identities, construct the service and let it know about both val service = createService(alice) @@ -131,8 +130,8 @@ class InMemoryIdentityServiceTests { @Test fun `assert ownership`() { withTestSerialization { - val (alice, anonymousAlice) = createParty(ALICE.name, DEV_CA) - val (bob, anonymousBob) = createParty(BOB.name, DEV_CA) + val (alice, anonymousAlice) = createConfidentialIdentity(ALICE.name) + val (bob, anonymousBob) = createConfidentialIdentity(BOB.name) // Now we have identities, construct the service and let it know about both val service = createService(alice, bob) @@ -157,11 +156,11 @@ class InMemoryIdentityServiceTests { } } - private fun createParty(x500Name: CordaX500Name, ca: CertificateAndKeyPair): Pair { + private fun createConfidentialIdentity(x500Name: CordaX500Name): Pair { val issuerKeyPair = generateKeyPair() - val issuer = getTestPartyAndCertificate(x500Name, issuerKeyPair.public, ca) + val issuer = getTestPartyAndCertificate(x500Name, issuerKeyPair.public) val txKey = Crypto.generateKeyPair() - val txCert = X509Utilities.createCertificate(CertificateType.IDENTITY, issuer.certificate.toX509CertHolder(), issuerKeyPair, x500Name, txKey.public) + val txCert = X509Utilities.createCertificate(CertificateType.CONFIDENTIAL_IDENTITY, issuer.certificate.toX509CertHolder(), issuerKeyPair, x500Name, txKey.public) val txCertPath = X509CertificateFactory().delegate.generateCertPath(listOf(txCert.cert) + issuer.certPath.certificates) return Pair(issuer, PartyAndCertificate(txCertPath)) } diff --git a/node/src/test/kotlin/net/corda/node/services/identity/PersistentIdentityServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/identity/PersistentIdentityServiceTests.kt index 0650e74486..e3894fce27 100644 --- a/node/src/test/kotlin/net/corda/node/services/identity/PersistentIdentityServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/identity/PersistentIdentityServiceTests.kt @@ -11,7 +11,6 @@ import net.corda.core.internal.toX509CertHolder import net.corda.core.node.services.IdentityService import net.corda.core.node.services.UnknownAnonymousPartyException import net.corda.node.internal.configureDatabase -import net.corda.nodeapi.internal.crypto.CertificateAndKeyPair import net.corda.nodeapi.internal.crypto.CertificateType import net.corda.nodeapi.internal.crypto.X509CertificateFactory import net.corda.nodeapi.internal.crypto.X509Utilities @@ -149,8 +148,8 @@ class PersistentIdentityServiceTests { */ @Test fun `get anonymous identity by key`() { - val (alice, aliceTxIdentity) = createParty(ALICE.name, DEV_CA) - val (_, bobTxIdentity) = createParty(ALICE.name, DEV_CA) + val (alice, aliceTxIdentity) = createConfidentialIdentity(ALICE.name) + val (_, bobTxIdentity) = createConfidentialIdentity(ALICE.name) // Now we have identities, construct the service and let it know about both database.transaction { @@ -182,8 +181,8 @@ class PersistentIdentityServiceTests { @Test fun `assert ownership`() { withTestSerialization { - val (alice, anonymousAlice) = createParty(ALICE.name, DEV_CA) - val (bob, anonymousBob) = createParty(BOB.name, DEV_CA) + val (alice, anonymousAlice) = createConfidentialIdentity(ALICE.name) + val (bob, anonymousBob) = createConfidentialIdentity(BOB.name) database.transaction { // Now we have identities, construct the service and let it know about both @@ -219,8 +218,8 @@ class PersistentIdentityServiceTests { @Test fun `Test Persistence`() { - val (alice, anonymousAlice) = createParty(ALICE.name, DEV_CA) - val (bob, anonymousBob) = createParty(BOB.name, DEV_CA) + val (alice, anonymousAlice) = createConfidentialIdentity(ALICE.name) + val (bob, anonymousBob) = createConfidentialIdentity(BOB.name) database.transaction { // Register well known identities @@ -252,11 +251,11 @@ class PersistentIdentityServiceTests { assertEquals(anonymousBob, bobReload!!) } - private fun createParty(x500Name: CordaX500Name, ca: CertificateAndKeyPair): Pair { + private fun createConfidentialIdentity(x500Name: CordaX500Name): Pair { val issuerKeyPair = generateKeyPair() - val issuer = getTestPartyAndCertificate(x500Name, issuerKeyPair.public, ca) + val issuer = getTestPartyAndCertificate(x500Name, issuerKeyPair.public) val txKey = Crypto.generateKeyPair() - val txCert = X509Utilities.createCertificate(CertificateType.IDENTITY, issuer.certificate.toX509CertHolder(), issuerKeyPair, x500Name, txKey.public) + val txCert = X509Utilities.createCertificate(CertificateType.CONFIDENTIAL_IDENTITY, issuer.certificate.toX509CertHolder(), issuerKeyPair, x500Name, txKey.public) val txCertPath = X509CertificateFactory().delegate.generateCertPath(listOf(txCert.cert) + issuer.certPath.certificates) return Pair(issuer, PartyAndCertificate(txCertPath)) } diff --git a/node/src/test/kotlin/net/corda/node/services/network/TestNodeInfoFactory.kt b/node/src/test/kotlin/net/corda/node/services/network/TestNodeInfoFactory.kt index 13ac5c5657..0b70adbc57 100644 --- a/node/src/test/kotlin/net/corda/node/services/network/TestNodeInfoFactory.kt +++ b/node/src/test/kotlin/net/corda/node/services/network/TestNodeInfoFactory.kt @@ -26,7 +26,7 @@ object TestNodeInfoFactory { fun createNodeInfo(organisation: String): SignedData { val keyPair = Crypto.generateKeyPair(X509Utilities.DEFAULT_TLS_SIGNATURE_SCHEME) - val clientCert = X509Utilities.createCertificate(CertificateType.CLIENT_CA, intermediateCACert, intermediateCAKey, CordaX500Name(organisation = organisation, locality = "London", country = "GB"), keyPair.public) + val clientCert = X509Utilities.createCertificate(CertificateType.NODE_CA, intermediateCACert, intermediateCAKey, CordaX500Name(organisation = organisation, locality = "London", country = "GB"), keyPair.public) val certPath = buildCertPath(clientCert.toX509Certificate(), intermediateCACert.toX509Certificate(), rootCACert.toX509Certificate()) val nodeInfo = NodeInfo(listOf(NetworkHostAndPort("my.$organisation.com", 1234)), listOf(PartyAndCertificate(certPath)), 1, serial = 1L) return sign(keyPair, nodeInfo) diff --git a/node/src/test/kotlin/net/corda/node/utilities/TLSAuthenticationTests.kt b/node/src/test/kotlin/net/corda/node/utilities/TLSAuthenticationTests.kt index 837686aee6..a493f4d885 100644 --- a/node/src/test/kotlin/net/corda/node/utilities/TLSAuthenticationTests.kt +++ b/node/src/test/kotlin/net/corda/node/utilities/TLSAuthenticationTests.kt @@ -242,7 +242,7 @@ class TLSAuthenticationTests { // Client 1 keys, certs and SSLKeyStore. val client1CAKeyPair = Crypto.generateKeyPair(client1CAScheme) val client1CACert = X509Utilities.createCertificate( - CertificateType.CLIENT_CA, + CertificateType.NODE_CA, intermediateCACert, intermediateCAKeyPair, CLIENT_1_X500, @@ -269,7 +269,7 @@ class TLSAuthenticationTests { // Client 2 keys, certs and SSLKeyStore. val client2CAKeyPair = Crypto.generateKeyPair(client2CAScheme) val client2CACert = X509Utilities.createCertificate( - CertificateType.CLIENT_CA, + CertificateType.NODE_CA, intermediateCACert, intermediateCAKeyPair, CLIENT_2_X500, diff --git a/testing/test-utils/src/main/kotlin/net/corda/testing/CoreTestUtils.kt b/testing/test-utils/src/main/kotlin/net/corda/testing/CoreTestUtils.kt index df5d85661c..da67d7a289 100644 --- a/testing/test-utils/src/main/kotlin/net/corda/testing/CoreTestUtils.kt +++ b/testing/test-utils/src/main/kotlin/net/corda/testing/CoreTestUtils.kt @@ -4,12 +4,14 @@ package net.corda.testing import net.corda.core.contracts.StateRef +import net.corda.core.crypto.Crypto import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair import net.corda.core.identity.CordaX500Name import net.corda.core.identity.Party import net.corda.core.identity.PartyAndCertificate import net.corda.core.internal.cert +import net.corda.core.internal.x500Name import net.corda.core.node.NodeInfo import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.OpaqueBytes @@ -22,6 +24,10 @@ import net.corda.nodeapi.internal.crypto.CertificateType import net.corda.nodeapi.internal.crypto.X509CertificateFactory import net.corda.nodeapi.internal.crypto.X509Utilities import net.corda.nodeapi.internal.serialization.amqp.AMQP_ENABLED +import org.bouncycastle.asn1.x509.GeneralName +import org.bouncycastle.asn1.x509.GeneralSubtree +import org.bouncycastle.asn1.x509.NameConstraints +import org.bouncycastle.cert.X509CertificateHolder import org.mockito.Mockito.mock import org.mockito.internal.stubbing.answers.ThrowsException import java.lang.reflect.Modifier @@ -128,18 +134,27 @@ fun configureTestSSL(legalName: CordaX500Name = MEGA_CORP.name): SSLConfiguratio configureDevKeyAndTrustStores(legalName) } } +fun getTestPartyAndCertificate(party: Party): PartyAndCertificate { + val trustRoot: X509CertificateHolder = DEV_TRUST_ROOT + val intermediate: CertificateAndKeyPair = DEV_CA -fun getTestPartyAndCertificate(party: Party, trustRoot: CertificateAndKeyPair = DEV_CA): PartyAndCertificate { - val certHolder = X509Utilities.createCertificate(CertificateType.IDENTITY, trustRoot.certificate, trustRoot.keyPair, party.name, party.owningKey) - val certPath = X509CertificateFactory().delegate.generateCertPath(listOf(certHolder.cert, trustRoot.certificate.cert)) + val nodeCaName = party.name.copy(commonName = X509Utilities.CORDA_CLIENT_CA_CN) + val nameConstraints = NameConstraints(arrayOf(GeneralSubtree(GeneralName(GeneralName.directoryName, party.name.x500Name))), arrayOf()) + val issuerKeyPair = Crypto.generateKeyPair(Crypto.ECDSA_SECP256K1_SHA256) + val issuerCertificate = X509Utilities.createCertificate(CertificateType.NODE_CA, intermediate.certificate, intermediate.keyPair, nodeCaName, issuerKeyPair.public, + nameConstraints = nameConstraints) + + val certHolder = X509Utilities.createCertificate(CertificateType.WELL_KNOWN_IDENTITY, issuerCertificate, issuerKeyPair, party.name, party.owningKey) + val pathElements = listOf(certHolder, issuerCertificate, intermediate.certificate, trustRoot) + val certPath = X509CertificateFactory().delegate.generateCertPath(pathElements.map(X509CertificateHolder::cert)) return PartyAndCertificate(certPath) } /** * Build a test party with a nonsense certificate authority for testing purposes. */ -fun getTestPartyAndCertificate(name: CordaX500Name, publicKey: PublicKey, trustRoot: CertificateAndKeyPair = DEV_CA): PartyAndCertificate { - return getTestPartyAndCertificate(Party(name, publicKey), trustRoot) +fun getTestPartyAndCertificate(name: CordaX500Name, publicKey: PublicKey): PartyAndCertificate { + return getTestPartyAndCertificate(Party(name, publicKey)) } @Suppress("unused") diff --git a/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt b/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt index 83ec0a0bd1..aa8a88aea6 100644 --- a/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt +++ b/testing/test-utils/src/main/kotlin/net/corda/testing/TestConstants.kt @@ -4,20 +4,23 @@ package net.corda.testing import net.corda.core.contracts.Command import net.corda.core.contracts.TypeOnlyCommandData +import net.corda.core.crypto.Crypto import net.corda.core.crypto.entropyToKeyPair import net.corda.core.crypto.generateKeyPair import net.corda.core.identity.CordaX500Name import net.corda.core.identity.Party import net.corda.core.identity.PartyAndCertificate import net.corda.core.internal.toX509CertHolder -import net.corda.nodeapi.internal.crypto.CertificateAndKeyPair -import net.corda.nodeapi.internal.crypto.X509Utilities -import net.corda.nodeapi.internal.crypto.getCertificateAndKeyPair -import net.corda.nodeapi.internal.crypto.loadKeyStore +import net.corda.core.internal.x500Name +import net.corda.nodeapi.internal.crypto.* +import org.bouncycastle.asn1.x509.GeneralName +import org.bouncycastle.asn1.x509.GeneralSubtree +import org.bouncycastle.asn1.x509.NameConstraints import org.bouncycastle.cert.X509CertificateHolder import java.math.BigInteger import java.security.KeyPair import java.security.PublicKey +import java.security.Security import java.time.Instant // A dummy time at which we will be pretending test transactions are created. From 7c5a328cc116966e26b6660a3a6b15633ba65114 Mon Sep 17 00:00:00 2001 From: Alberto Arri <30873160+al-r3@users.noreply.github.com> Date: Fri, 8 Dec 2017 14:16:06 +0000 Subject: [PATCH 09/17] Create a single NodeInfo (#2174) --- .../net/corda/node/internal/AbstractNode.kt | 54 ++++++++++++------- .../node/services/network/NetworkMapClient.kt | 1 + 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index a20123f6b5..81766c37d6 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -174,26 +174,33 @@ abstract class AbstractNode(val configuration: NodeConfiguration, check(started == null) { "Node has already been started" } log.info("Generating nodeInfo ...") initCertificate() - val (keyPairs, info) = initNodeInfo() - val identityKeypair = keyPairs.first { it.public == info.legalIdentities.first().owningKey } - val serialisedNodeInfo = info.serialize() - val signature = identityKeypair.sign(serialisedNodeInfo) - // TODO: Signed data might not be sufficient for multiple identities, as it only contains one signature. - NodeInfoWatcher.saveToFile(configuration.baseDirectory, SignedData(serialisedNodeInfo, signature)) + val schemaService = NodeSchemaService(cordappLoader.cordappSchemas) + val (identity, identityKeyPair) = obtainIdentity(notaryConfig = null) + initialiseDatabasePersistence(schemaService, makeIdentityService(identity.certificate)) { database -> + val persistentNetworkMapCache = PersistentNetworkMapCache(database) + val (keyPairs, info) = initNodeInfo(persistentNetworkMapCache, identity, identityKeyPair) + val identityKeypair = keyPairs.first { it.public == info.legalIdentities.first().owningKey } + val serialisedNodeInfo = info.serialize() + val signature = identityKeypair.sign(serialisedNodeInfo) + // TODO: Signed data might not be sufficient for multiple identities, as it only contains one signature. + NodeInfoWatcher.saveToFile(configuration.baseDirectory, SignedData(serialisedNodeInfo, signature)) + } } open fun start(): StartedNode { check(started == null) { "Node has already been started" } log.info("Node starting up ...") initCertificate() - val (keyPairs, info) = initNodeInfo() val schemaService = NodeSchemaService(cordappLoader.cordappSchemas) - val identityService = makeIdentityService(info) + val (identity, identityKeyPair) = obtainIdentity(notaryConfig = null) + val identityService = makeIdentityService(identity.certificate) // Do all of this in a database transaction so anything that might need a connection has one. val (startedImpl, schedulerService) = initialiseDatabasePersistence(schemaService, identityService) { database -> + val networkMapCache = NetworkMapCacheImpl(PersistentNetworkMapCache(database), identityService) + val (keyPairs, info) = initNodeInfo(networkMapCache, identity, identityKeyPair) identityService.loadIdentities(info.legalIdentitiesAndCerts) val transactionStorage = makeTransactionStorage(database) - val nodeServices = makeServices(keyPairs, schemaService, transactionStorage, database, info, identityService) + val nodeServices = makeServices(keyPairs, schemaService, transactionStorage, database, info, identityService, networkMapCache) val notaryService = makeNotaryService(nodeServices, database) val smm = makeStateMachineManager(database) val flowStarter = FlowStarterImpl(serverThread, smm) @@ -238,7 +245,6 @@ abstract class AbstractNode(val configuration: NodeConfiguration, networkMapUpdater.subscribeToNetworkMap() // If we successfully loaded network data from database, we set this future to Unit. - services.networkMapCache.addNode(info) _nodeReadyFuture.captureLater(services.networkMapCache.nodeReady.map { Unit }) return startedImpl.apply { @@ -262,8 +268,9 @@ abstract class AbstractNode(val configuration: NodeConfiguration, InteractiveShell.startShell(configuration, rpcOps, userService, _services.identityService, _services.database) } - private fun initNodeInfo(): Pair, NodeInfo> { - val (identity, identityKeyPair) = obtainIdentity(notaryConfig = null) + private fun initNodeInfo(networkMapCache: NetworkMapCacheBaseInternal, + identity: PartyAndCertificate, + identityKeyPair: KeyPair): Pair, NodeInfo> { val keyPairs = mutableSetOf(identityKeyPair) myNotaryIdentity = configuration.notary?.let { @@ -271,12 +278,20 @@ abstract class AbstractNode(val configuration: NodeConfiguration, keyPairs += notaryIdentityKeyPair notaryIdentity } - val info = NodeInfo( + + var info = NodeInfo( myAddresses(), listOf(identity, myNotaryIdentity).filterNotNull(), versionInfo.platformVersion, platformClock.instant().toEpochMilli() ) + // Check if we have already stored a version of 'our own' NodeInfo, this is to avoid regenerating it with + // a different timestamp. + networkMapCache.getNodesByLegalName(myLegalName).firstOrNull()?.let { + if (info.copy(serial = it.serial) == it) { + info = it + } + } return Pair(keyPairs, info) } @@ -498,7 +513,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, * Builds node internal, advertised, and plugin services. * Returns a list of tokenizable services to be added to the serialisation context. */ - private fun makeServices(keyPairs: Set, schemaService: SchemaService, transactionStorage: WritableTransactionStorage, database: CordaPersistence, info: NodeInfo, identityService: IdentityServiceInternal): MutableList { + private fun makeServices(keyPairs: Set, schemaService: SchemaService, transactionStorage: WritableTransactionStorage, database: CordaPersistence, info: NodeInfo, identityService: IdentityServiceInternal, networkMapCache: NetworkMapCacheInternal): MutableList { checkpointStorage = DBCheckpointStorage() val metrics = MetricRegistry() attachments = NodeAttachmentService(metrics) @@ -512,7 +527,8 @@ abstract class AbstractNode(val configuration: NodeConfiguration, MonitoringService(metrics), cordappProvider, database, - info) + info, + networkMapCache) network = makeMessagingService(database, info) val tokenizableServices = mutableListOf(attachments, network, services.vaultService, services.keyManagementService, services.identityService, platformClock, @@ -619,12 +635,12 @@ abstract class AbstractNode(val configuration: NodeConfiguration, } } - private fun makeIdentityService(info: NodeInfo): PersistentIdentityService { + private fun makeIdentityService(identityCert: X509Certificate): PersistentIdentityService { val trustStore = KeyStoreWrapper(configuration.trustStoreFile, configuration.trustStorePassword) val caKeyStore = KeyStoreWrapper(configuration.nodeKeystore, configuration.keyStorePassword) val trustRoot = trustStore.getX509Certificate(X509Utilities.CORDA_ROOT_CA) val clientCa = caKeyStore.certificateAndKeyPair(X509Utilities.CORDA_CLIENT_CA) - val caCertificates = arrayOf(info.legalIdentitiesAndCerts[0].certificate, clientCa.certificate.cert) + val caCertificates = arrayOf(identityCert, clientCa.certificate.cert) return PersistentIdentityService(trustRoot, *caCertificates) } @@ -724,13 +740,13 @@ abstract class AbstractNode(val configuration: NodeConfiguration, override val monitoringService: MonitoringService, override val cordappProvider: CordappProviderInternal, override val database: CordaPersistence, - override val myInfo: NodeInfo + override val myInfo: NodeInfo, + override val networkMapCache: NetworkMapCacheInternal ) : SingletonSerializeAsToken(), ServiceHubInternal, StateLoader by validatedTransactions { override val rpcFlows = ArrayList>>() override val stateMachineRecordedTransactionMapping = DBTransactionMappingStorage() override val auditService = DummyAuditService() override val transactionVerifierService by lazy { makeTransactionVerifierService() } - override val networkMapCache by lazy { NetworkMapCacheImpl(PersistentNetworkMapCache(database), identityService) } override val vaultService by lazy { makeVaultService(keyManagementService, validatedTransactions, database.hibernateConfig) } override val contractUpgradeService by lazy { ContractUpgradeServiceImpl() } override val attachments: AttachmentStorage get() = this@AbstractNode.attachments diff --git a/node/src/main/kotlin/net/corda/node/services/network/NetworkMapClient.kt b/node/src/main/kotlin/net/corda/node/services/network/NetworkMapClient.kt index 02f4310061..9563bb9d3d 100644 --- a/node/src/main/kotlin/net/corda/node/services/network/NetworkMapClient.kt +++ b/node/src/main/kotlin/net/corda/node/services/network/NetworkMapClient.kt @@ -88,6 +88,7 @@ class NetworkMapUpdater(private val networkMapCache: NetworkMapCacheInternal, // Only publish and write to disk if there are changes to the node info. val signedNodeInfo = signNodeInfo(newInfo) + networkMapCache.addNode(newInfo) fileWatcher.saveToFile(signedNodeInfo) if (networkMapClient != null) { From afdf5fb7179625271dd61a380c896db09fe69e02 Mon Sep 17 00:00:00 2001 From: Katelyn Baker Date: Fri, 8 Dec 2017 14:21:30 +0000 Subject: [PATCH 10/17] Code tidy up, auto reformat, IntelliJ suggestions --- .../amqp/EnumEvolutionSerializer.kt | 6 +- .../serialization/amqp/PropertySerializer.kt | 19 ++- .../serialization/amqp/TansformTypes.kt | 23 ++-- .../serialization/amqp/TransformsSchema.kt | 56 ++++---- .../amqp/EnumEvolvabilityTests.kt | 129 +++++++++--------- .../serialization/amqp/EnumEvolveTests.kt | 39 +++--- .../internal/serialization/amqp/EnumTests.kt | 19 ++- .../serialization/amqp/EvolvabilityTests.kt | 7 +- 8 files changed, 148 insertions(+), 150 deletions(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolutionSerializer.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolutionSerializer.kt index ec8a61c793..88639d466b 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolutionSerializer.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolutionSerializer.kt @@ -27,9 +27,9 @@ import java.util.* * transformation rules we create a mapping between those values and the values that exist on the * current class * - * @property clazz The enum as it exists now, not as it did when it was serialized (either in the past + * @property type The enum as it exists now, not as it did when it was serialized (either in the past * or future). - * @property factory the [SerializerFactory] that is building this serialization object. + * @param factory the [SerializerFactory] that is building this serialization object. * @property conversions A mapping between all potential enum constants that could've been assigned to * an instance of the enum as it existed at time of serialisation and those that exist now * @property ordinals Convenience mapping of constant to ordinality @@ -57,7 +57,7 @@ class EnumEvolutionSerializer( * received AMQP header * @param new The Serializer object we built based on the current state of the enum class on our classpath * @param factory the [SerializerFactory] that is building this serialization object. - * @param transformsFromBlob the transforms attached to the class in the AMQP header, i.e. the transforms + * @param schemas the transforms attached to the class in the AMQP header, i.e. the transforms * known at serialization time */ fun make(old: RestrictedType, diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/PropertySerializer.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/PropertySerializer.kt index 230a3eb4a8..d296a8fd91 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/PropertySerializer.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/PropertySerializer.kt @@ -32,17 +32,16 @@ sealed class PropertySerializer(val name: String, val readMethod: Method?, val r return if (isInterface) listOf(SerializerFactory.nameForType(resolvedType)) else emptyList() } - private fun generateDefault(): String? { - if (isJVMPrimitive) { - return when (resolvedType) { - java.lang.Boolean.TYPE -> "false" - java.lang.Character.TYPE -> "�" - else -> "0" + private fun generateDefault(): String? = + if (isJVMPrimitive) { + when (resolvedType) { + java.lang.Boolean.TYPE -> "false" + java.lang.Character.TYPE -> "�" + else -> "0" + } + } else { + null } - } else { - return null - } - } private fun generateMandatory(): Boolean { return isJVMPrimitive || readMethod?.returnsNullable() == false diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TansformTypes.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TansformTypes.kt index 0003a48ba2..09c9be7746 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TansformTypes.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TansformTypes.kt @@ -28,7 +28,7 @@ enum class TransformTypes(val build: (Annotation) -> Transform) : DescribedType Unknown({ UnknownTransform() }) { override fun getDescriptor(): Any = DESCRIPTOR override fun getDescribed(): Any = ordinal - override fun validate(l : List, constants: Map) { } + override fun validate(list: List, constants: Map) {} }, EnumDefault({ a -> EnumDefaultSchemaTransform((a as CordaSerializationTransformEnumDefault).old, a.new) }) { override fun getDescriptor(): Any = DESCRIPTOR @@ -37,13 +37,13 @@ enum class TransformTypes(val build: (Annotation) -> Transform) : DescribedType /** * Validates a list of constant additions to an enumerated type. To be valid a default (the value * that should be used when we cannot use the new value) must refer to a constant that exists in the - * enum class as it exists now and it cannot refer to itself. + * enum class as it exists now and it cannot refer to itself. * - * @param l The list of transforms representing new constants and the mapping from that constant to an + * @param list The list of transforms representing new constants and the mapping from that constant to an * existing value * @param constants The list of enum constants on the type the transforms are being applied to */ - override fun validate(list : List, constants: Map) { + override fun validate(list: List, constants: Map) { uncheckedCast, List>(list).forEach { if (!constants.contains(it.new)) { throw NotSerializableException("Unknown enum constant ${it.new}") @@ -62,7 +62,7 @@ enum class TransformTypes(val build: (Annotation) -> Transform) : DescribedType if (constants[it.old]!! >= constants[it.new]!!) { throw NotSerializableException( "Enum extensions must default to older constants. ${it.new}[${constants[it.new]}] " + - "defaults to ${it.old}[${constants[it.old]}] which is greater") + "defaults to ${it.old}[${constants[it.old]}] which is greater") } } } @@ -76,15 +76,16 @@ enum class TransformTypes(val build: (Annotation) -> Transform) : DescribedType * that is a constant is renamed to something that used to exist in the enum. We do this for both * the same constant (i.e. C -> D -> C) and multiple constants (C->D, B->C) * - * @param l The list of transforms representing the renamed constants and the mapping between their new + * @param list The list of transforms representing the renamed constants and the mapping between their new * and old values * @param constants The list of enum constants on the type the transforms are being applied to */ - override fun validate(l : List, constants: Map) { + override fun validate(list: List, constants: Map) { object : Any() { - val from : MutableSet = mutableSetOf() - val to : MutableSet = mutableSetOf() }.apply { - @Suppress("UNCHECKED_CAST") (l as List).forEach { rename -> + val from: MutableSet = mutableSetOf() + val to: MutableSet = mutableSetOf() + }.apply { + @Suppress("UNCHECKED_CAST") (list as List).forEach { rename -> if (rename.to in this.to || rename.from in this.from) { throw NotSerializableException("Cyclic renames are not allowed (${rename.to})") } @@ -104,7 +105,7 @@ enum class TransformTypes(val build: (Annotation) -> Transform) : DescribedType //} ; - abstract fun validate(l: List, constants: Map) + abstract fun validate(list: List, constants: Map) companion object : DescribedTypeConstructor { val DESCRIPTOR = AMQPDescriptorRegistry.TRANSFORM_ELEMENT_KEY.amqpDescriptor diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TransformsSchema.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TransformsSchema.kt index 378675b84e..1d01f91f4f 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TransformsSchema.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/amqp/TransformsSchema.kt @@ -92,7 +92,7 @@ class UnknownTestTransform(val a: Int, val b: Int, val c: Int) : Transform() { companion object : DescribedTypeConstructor { val typeName = "UnknownTest" - override fun newInstance(obj: Any?) : UnknownTestTransform { + override fun newInstance(obj: Any?): UnknownTestTransform { val described = obj as List<*> return UnknownTestTransform(described[1] as Int, described[2] as Int, described[3] as Int) } @@ -201,41 +201,41 @@ data class TransformsSchema(val types: Map>(TransformTypes::class.java) - try { - val clazz = sf.classloader.loadClass(name) + val transforms = EnumMap>(TransformTypes::class.java) + try { + val clazz = sf.classloader.loadClass(name) - supportedTransforms.forEach { transform -> - clazz.getAnnotation(transform.type)?.let { list -> - transform.getAnnotations(list).forEach { annotation -> - val t = transform.enum.build(annotation) + supportedTransforms.forEach { transform -> + clazz.getAnnotation(transform.type)?.let { list -> + transform.getAnnotations(list).forEach { annotation -> + val t = transform.enum.build(annotation) - // we're explicitly rejecting repeated annotations, whilst it's fine and we'd just - // ignore them it feels like a good thing to alert the user to since this is - // more than likely a typo in their code so best make it an actual error - if (transforms.computeIfAbsent(transform.enum) { mutableListOf() } - .filter { t == it } - .isNotEmpty()) { - throw NotSerializableException( - "Repeated unique transformation annotation of type ${t.name}") - } - - transforms[transform.enum]!!.add(t) + // we're explicitly rejecting repeated annotations, whilst it's fine and we'd just + // ignore them it feels like a good thing to alert the user to since this is + // more than likely a typo in their code so best make it an actual error + if (transforms.computeIfAbsent(transform.enum) { mutableListOf() } + .filter { t == it } + .isNotEmpty()) { + throw NotSerializableException( + "Repeated unique transformation annotation of type ${t.name}") } - transform.enum.validate( - transforms[transform.enum] ?: emptyList(), - clazz.enumConstants.mapIndexed { i, s -> Pair(s.toString(), i) }.toMap()) + transforms[transform.enum]!!.add(t) } - } - } catch (_: ClassNotFoundException) { - // if we can't load the class we'll end up caching an empty list which is fine as that - // list, on lookup, won't be included in the schema because it's empty - } - transforms + transform.enum.validate( + transforms[transform.enum] ?: emptyList(), + clazz.enumConstants.mapIndexed { i, s -> Pair(s.toString(), i) }.toMap()) + } + } + } catch (_: ClassNotFoundException) { + // if we can't load the class we'll end up caching an empty list which is fine as that + // list, on lookup, won't be included in the schema because it's empty } + transforms + } + private fun getAndAdd( type: String, sf: SerializerFactory, diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolvabilityTests.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolvabilityTests.kt index 969db89a54..d18b970cfa 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolvabilityTests.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolvabilityTests.kt @@ -6,7 +6,6 @@ import org.assertj.core.api.Assertions import org.junit.Test import java.io.File import java.io.NotSerializableException -import java.net.URI import kotlin.test.assertEquals import kotlin.test.assertTrue @@ -47,7 +46,7 @@ class EnumEvolvabilityTests { @Test fun noAnnotation() { - data class C (val n: NotAnnotated) + data class C(val n: NotAnnotated) val sf = testDefaultFactory() val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(C(NotAnnotated.A)) @@ -63,7 +62,7 @@ class EnumEvolvabilityTests { @Test fun missingDefaults() { - data class C (val m: MissingDefaults) + data class C(val m: MissingDefaults) val sf = testDefaultFactory() val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(C(MissingDefaults.A)) @@ -74,7 +73,7 @@ class EnumEvolvabilityTests { @Test fun missingRenames() { - data class C (val m: MissingRenames) + data class C(val m: MissingRenames) val sf = testDefaultFactory() val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(C(MissingRenames.A)) @@ -86,7 +85,7 @@ class EnumEvolvabilityTests { @Test fun defaultAnnotationIsAddedToEnvelope() { - data class C (val annotatedEnum: AnnotatedEnumOnce) + data class C(val annotatedEnum: AnnotatedEnumOnce) val sf = testDefaultFactory() val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(C(AnnotatedEnumOnce.D)) @@ -94,45 +93,45 @@ class EnumEvolvabilityTests { // only the enum is decorated so schema sizes should be different (2 objects, only one evolved) assertEquals(2, bAndS.schema.types.size) assertEquals(1, bAndS.transformsSchema.types.size) - assertEquals (AnnotatedEnumOnce::class.java.name, bAndS.transformsSchema.types.keys.first()) + assertEquals(AnnotatedEnumOnce::class.java.name, bAndS.transformsSchema.types.keys.first()) val schema = bAndS.transformsSchema.types.values.first() assertEquals(1, schema.size) - assertTrue (schema.keys.contains(TransformTypes.EnumDefault)) - assertEquals (1, schema[TransformTypes.EnumDefault]!!.size) - assertTrue (schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) - assertEquals ("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) - assertEquals ("A", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) + assertTrue(schema.keys.contains(TransformTypes.EnumDefault)) + assertEquals(1, schema[TransformTypes.EnumDefault]!!.size) + assertTrue(schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) + assertEquals("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) + assertEquals("A", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) } @Test fun doubleDefaultAnnotationIsAddedToEnvelope() { - data class C (val annotatedEnum: AnnotatedEnumTwice) + data class C(val annotatedEnum: AnnotatedEnumTwice) val sf = testDefaultFactory() val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(C(AnnotatedEnumTwice.E)) assertEquals(2, bAndS.schema.types.size) assertEquals(1, bAndS.transformsSchema.types.size) - assertEquals (AnnotatedEnumTwice::class.java.name, bAndS.transformsSchema.types.keys.first()) + assertEquals(AnnotatedEnumTwice::class.java.name, bAndS.transformsSchema.types.keys.first()) val schema = bAndS.transformsSchema.types.values.first() assertEquals(1, schema.size) - assertTrue (schema.keys.contains(TransformTypes.EnumDefault)) - assertEquals (2, schema[TransformTypes.EnumDefault]!!.size) - assertTrue (schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) - assertEquals ("E", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) - assertEquals ("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) - assertTrue (schema[TransformTypes.EnumDefault]!![1] is EnumDefaultSchemaTransform) - assertEquals ("D", (schema[TransformTypes.EnumDefault]!![1] as EnumDefaultSchemaTransform).new) - assertEquals ("A", (schema[TransformTypes.EnumDefault]!![1] as EnumDefaultSchemaTransform).old) + assertTrue(schema.keys.contains(TransformTypes.EnumDefault)) + assertEquals(2, schema[TransformTypes.EnumDefault]!!.size) + assertTrue(schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) + assertEquals("E", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) + assertEquals("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) + assertTrue(schema[TransformTypes.EnumDefault]!![1] is EnumDefaultSchemaTransform) + assertEquals("D", (schema[TransformTypes.EnumDefault]!![1] as EnumDefaultSchemaTransform).new) + assertEquals("A", (schema[TransformTypes.EnumDefault]!![1] as EnumDefaultSchemaTransform).old) } @Test fun defaultAnnotationIsAddedToEnvelopeAndDeserialised() { - data class C (val annotatedEnum: AnnotatedEnumOnce) + data class C(val annotatedEnum: AnnotatedEnumOnce) val sf = testDefaultFactory() val sb = TestSerializationOutput(VERBOSE, sf).serialize(C(AnnotatedEnumOnce.D)) @@ -152,11 +151,11 @@ class EnumEvolvabilityTests { val schema = transforms[eName] - assertTrue (schema!!.keys.contains(TransformTypes.EnumDefault)) - assertEquals (1, schema[TransformTypes.EnumDefault]!!.size) - assertTrue (schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) - assertEquals ("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) - assertEquals ("A", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) + assertTrue(schema!!.keys.contains(TransformTypes.EnumDefault)) + assertEquals(1, schema[TransformTypes.EnumDefault]!!.size) + assertTrue(schema[TransformTypes.EnumDefault]!![0] is EnumDefaultSchemaTransform) + assertEquals("D", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).new) + assertEquals("A", (schema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) } @Test @@ -174,9 +173,9 @@ class EnumEvolvabilityTests { val transforms = db.envelope.transformsSchema.types - assertTrue (transforms.contains(AnnotatedEnumTwice::class.java.name)) - assertTrue (transforms[AnnotatedEnumTwice::class.java.name]!!.contains(TransformTypes.EnumDefault)) - assertEquals (2, transforms[AnnotatedEnumTwice::class.java.name]!![TransformTypes.EnumDefault]!!.size) + assertTrue(transforms.contains(AnnotatedEnumTwice::class.java.name)) + assertTrue(transforms[AnnotatedEnumTwice::class.java.name]!!.contains(TransformTypes.EnumDefault)) + assertEquals(2, transforms[AnnotatedEnumTwice::class.java.name]!![TransformTypes.EnumDefault]!!.size) val enumDefaults = transforms[AnnotatedEnumTwice::class.java.name]!![TransformTypes.EnumDefault]!! @@ -188,7 +187,7 @@ class EnumEvolvabilityTests { @Test fun renameAnnotationIsAdded() { - data class C (val annotatedEnum: RenameEnumOnce) + data class C(val annotatedEnum: RenameEnumOnce) val sf = testDefaultFactory() @@ -197,7 +196,7 @@ class EnumEvolvabilityTests { assertEquals(2, bAndS.schema.types.size) assertEquals(1, bAndS.transformsSchema.types.size) - assertEquals (RenameEnumOnce::class.java.name, bAndS.transformsSchema.types.keys.first()) + assertEquals(RenameEnumOnce::class.java.name, bAndS.transformsSchema.types.keys.first()) val serialisedSchema = bAndS.transformsSchema.types[RenameEnumOnce::class.java.name]!! @@ -212,7 +211,7 @@ class EnumEvolvabilityTests { assertEquals(2, cAndS.envelope.schema.types.size) assertEquals(1, cAndS.envelope.transformsSchema.types.size) - assertEquals (RenameEnumOnce::class.java.name, cAndS.envelope.transformsSchema.types.keys.first()) + assertEquals(RenameEnumOnce::class.java.name, cAndS.envelope.transformsSchema.types.keys.first()) val deserialisedSchema = cAndS.envelope.transformsSchema.types[RenameEnumOnce::class.java.name]!! @@ -232,7 +231,7 @@ class EnumEvolvabilityTests { @Test fun doubleRenameAnnotationIsAdded() { - data class C (val annotatedEnum: RenameEnumTwice) + data class C(val annotatedEnum: RenameEnumTwice) val sf = testDefaultFactory() @@ -241,7 +240,7 @@ class EnumEvolvabilityTests { assertEquals(2, bAndS.schema.types.size) assertEquals(1, bAndS.transformsSchema.types.size) - assertEquals (RenameEnumTwice::class.java.name, bAndS.transformsSchema.types.keys.first()) + assertEquals(RenameEnumTwice::class.java.name, bAndS.transformsSchema.types.keys.first()) val serialisedSchema = bAndS.transformsSchema.types[RenameEnumTwice::class.java.name]!! @@ -258,7 +257,7 @@ class EnumEvolvabilityTests { assertEquals(2, cAndS.envelope.schema.types.size) assertEquals(1, cAndS.envelope.transformsSchema.types.size) - assertEquals (RenameEnumTwice::class.java.name, cAndS.envelope.transformsSchema.types.keys.first()) + assertEquals(RenameEnumTwice::class.java.name, cAndS.envelope.transformsSchema.types.keys.first()) val deserialisedSchema = cAndS.envelope.transformsSchema.types[RenameEnumTwice::class.java.name]!! @@ -271,15 +270,15 @@ class EnumEvolvabilityTests { assertEquals("F", (deserialisedSchema[TransformTypes.Rename]!![1] as RenameSchemaTransform).to) } - @CordaSerializationTransformRename(from="A", to="X") - @CordaSerializationTransformEnumDefault(old = "X", new="E") + @CordaSerializationTransformRename(from = "A", to = "X") + @CordaSerializationTransformEnumDefault(old = "X", new = "E") enum class RenameAndExtendEnum { X, B, C, D, E } @Test fun bothAnnotationTypes() { - data class C (val annotatedEnum: RenameAndExtendEnum) + data class C(val annotatedEnum: RenameAndExtendEnum) val sf = testDefaultFactory() @@ -288,15 +287,15 @@ class EnumEvolvabilityTests { assertEquals(2, bAndS.schema.types.size) assertEquals(1, bAndS.transformsSchema.types.size) - assertEquals (RenameAndExtendEnum::class.java.name, bAndS.transformsSchema.types.keys.first()) + assertEquals(RenameAndExtendEnum::class.java.name, bAndS.transformsSchema.types.keys.first()) val serialisedSchema = bAndS.transformsSchema.types[RenameAndExtendEnum::class.java.name]!! // This time there should be two distinct transform types (all previous tests have had only // a single type assertEquals(2, serialisedSchema.size) - assertTrue (serialisedSchema.containsKey(TransformTypes.Rename)) - assertTrue (serialisedSchema.containsKey(TransformTypes.EnumDefault)) + assertTrue(serialisedSchema.containsKey(TransformTypes.Rename)) + assertTrue(serialisedSchema.containsKey(TransformTypes.EnumDefault)) assertEquals(1, serialisedSchema[TransformTypes.Rename]!!.size) assertEquals("A", (serialisedSchema[TransformTypes.Rename]!![0] as RenameSchemaTransform).from) @@ -307,7 +306,7 @@ class EnumEvolvabilityTests { assertEquals("X", (serialisedSchema[TransformTypes.EnumDefault]!![0] as EnumDefaultSchemaTransform).old) } - @CordaSerializationTransformEnumDefaults ( + @CordaSerializationTransformEnumDefaults( CordaSerializationTransformEnumDefault("D", "A"), CordaSerializationTransformEnumDefault("D", "A")) enum class RepeatedAnnotation { @@ -316,7 +315,7 @@ class EnumEvolvabilityTests { @Test fun repeatedAnnotation() { - data class C (val a: RepeatedAnnotation) + data class C(val a: RepeatedAnnotation) val sf = testDefaultFactory() @@ -330,40 +329,40 @@ class EnumEvolvabilityTests { A, B, C, D } - @CordaSerializationTransformEnumDefaults ( + @CordaSerializationTransformEnumDefaults( CordaSerializationTransformEnumDefault("D", "A"), CordaSerializationTransformEnumDefault("E", "A")) enum class E2 { A, B, C, D, E } - @CordaSerializationTransformEnumDefaults (CordaSerializationTransformEnumDefault("D", "A")) + @CordaSerializationTransformEnumDefaults(CordaSerializationTransformEnumDefault("D", "A")) enum class E3 { A, B, C, D } @Test fun multiEnums() { - data class A (val a: E1, val b: E2) - data class B (val a: E3, val b: A, val c: E1) - data class C (val a: B, val b: E2, val c: E3) + data class A(val a: E1, val b: E2) + data class B(val a: E3, val b: A, val c: E1) + data class C(val a: B, val b: E2, val c: E3) - val c = C(B(E3.A,A(E1.A,E2.B),E1.C),E2.B,E3.A) + val c = C(B(E3.A, A(E1.A, E2.B), E1.C), E2.B, E3.A) val sf = testDefaultFactory() // Serialise the object val bAndS = TestSerializationOutput(VERBOSE, sf).serializeAndReturnSchema(c) - println (bAndS.transformsSchema) + println(bAndS.transformsSchema) // we have six types and three of those, the enums, should have transforms assertEquals(6, bAndS.schema.types.size) assertEquals(3, bAndS.transformsSchema.types.size) - assertTrue (E1::class.java.name in bAndS.transformsSchema.types) - assertTrue (E2::class.java.name in bAndS.transformsSchema.types) - assertTrue (E3::class.java.name in bAndS.transformsSchema.types) + assertTrue(E1::class.java.name in bAndS.transformsSchema.types) + assertTrue(E2::class.java.name in bAndS.transformsSchema.types) + assertTrue(E3::class.java.name in bAndS.transformsSchema.types) val e1S = bAndS.transformsSchema.types[E1::class.java.name]!! val e2S = bAndS.transformsSchema.types[E2::class.java.name]!! @@ -404,7 +403,7 @@ class EnumEvolvabilityTests { assertTrue(sf.transformsCache.containsKey(C2::class.java.name)) assertTrue(sf.transformsCache.containsKey(AnnotatedEnumOnce::class.java.name)) - assertEquals (sb1.transformsSchema.types[AnnotatedEnumOnce::class.java.name], + assertEquals(sb1.transformsSchema.types[AnnotatedEnumOnce::class.java.name], sb2.transformsSchema.types[AnnotatedEnumOnce::class.java.name]) } @@ -447,7 +446,7 @@ class EnumEvolvabilityTests { // // And we're not at 3. However, we ban this rename // - @CordaSerializationTransformRenames ( + @CordaSerializationTransformRenames( CordaSerializationTransformRename("D", "C"), CordaSerializationTransformRename("C", "D") ) @@ -455,7 +454,7 @@ class EnumEvolvabilityTests { @Test fun rejectCyclicRename() { - data class C (val e: RejectCyclicRename) + data class C(val e: RejectCyclicRename) val sf = testDefaultFactory() Assertions.assertThatThrownBy { @@ -468,7 +467,7 @@ class EnumEvolvabilityTests { // unserailzble. However, in this case, it isn't a struct cycle, rather one element // is renamed to match what a different element used to be called // - @CordaSerializationTransformRenames ( + @CordaSerializationTransformRenames( CordaSerializationTransformRename(from = "B", to = "C"), CordaSerializationTransformRename(from = "C", to = "D") ) @@ -476,7 +475,7 @@ class EnumEvolvabilityTests { @Test fun rejectCyclicRenameAlt() { - data class C (val e: RejectCyclicRenameAlt) + data class C(val e: RejectCyclicRenameAlt) val sf = testDefaultFactory() Assertions.assertThatThrownBy { @@ -484,7 +483,7 @@ class EnumEvolvabilityTests { }.isInstanceOf(NotSerializableException::class.java) } - @CordaSerializationTransformRenames ( + @CordaSerializationTransformRenames( CordaSerializationTransformRename("G", "C"), CordaSerializationTransformRename("F", "G"), CordaSerializationTransformRename("E", "F"), @@ -495,7 +494,7 @@ class EnumEvolvabilityTests { @Test fun rejectCyclicRenameRedux() { - data class C (val e: RejectCyclicRenameRedux) + data class C(val e: RejectCyclicRenameRedux) val sf = testDefaultFactory() Assertions.assertThatThrownBy { @@ -503,12 +502,12 @@ class EnumEvolvabilityTests { }.isInstanceOf(NotSerializableException::class.java) } - @CordaSerializationTransformEnumDefault (new = "D", old = "X") + @CordaSerializationTransformEnumDefault(new = "D", old = "X") enum class RejectBadDefault { A, B, C, D } @Test fun rejectBadDefault() { - data class C (val e: RejectBadDefault) + data class C(val e: RejectBadDefault) val sf = testDefaultFactory() Assertions.assertThatThrownBy { @@ -516,12 +515,12 @@ class EnumEvolvabilityTests { }.isInstanceOf(NotSerializableException::class.java) } - @CordaSerializationTransformEnumDefault (new = "D", old = "D") + @CordaSerializationTransformEnumDefault(new = "D", old = "D") enum class RejectBadDefaultToSelf { A, B, C, D } @Test fun rejectBadDefaultToSelf() { - data class C (val e: RejectBadDefaultToSelf) + data class C(val e: RejectBadDefaultToSelf) val sf = testDefaultFactory() Assertions.assertThatThrownBy { diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolveTests.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolveTests.kt index b2939d7fa9..bdcde9bf64 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolveTests.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumEvolveTests.kt @@ -1,12 +1,13 @@ package net.corda.nodeapi.internal.serialization.amqp -import net.corda.core.serialization.* +import net.corda.core.serialization.CordaSerializationTransformEnumDefault +import net.corda.core.serialization.CordaSerializationTransformEnumDefaults +import net.corda.core.serialization.SerializedBytes import net.corda.testing.common.internal.ProjectStructure.projectRootDir import org.assertj.core.api.Assertions import org.junit.Test import java.io.File import java.io.NotSerializableException -import java.net.URI import kotlin.test.assertEquals // NOTE: To recreate the test files used by these tests uncomment the original test classes and comment @@ -30,7 +31,7 @@ class EnumEvolveTests { val resource = "${javaClass.simpleName}.${testName()}" val sf = testDefaultFactory() - data class C (val e : DeserializeNewerSetToUnknown) + data class C(val e: DeserializeNewerSetToUnknown) // Uncomment to re-generate test files // File(URI("$localPath/$resource")).writeBytes( @@ -40,7 +41,7 @@ class EnumEvolveTests { val obj = DeserializationInput(sf).deserialize(SerializedBytes(File(path.toURI()).readBytes())) - assertEquals (DeserializeNewerSetToUnknown.C, obj.e) + assertEquals(DeserializeNewerSetToUnknown.C, obj.e) } // Version of the class as it was serialised @@ -78,9 +79,9 @@ class EnumEvolveTests { // of the evolution code val obj3 = DeserializationInput(sf).deserialize(SerializedBytes(File(path3.toURI()).readBytes())) - assertEquals (DeserializeNewerSetToUnknown2.C, obj1.e) - assertEquals (DeserializeNewerSetToUnknown2.C, obj2.e) - assertEquals (DeserializeNewerSetToUnknown2.C, obj3.e) + assertEquals(DeserializeNewerSetToUnknown2.C, obj1.e) + assertEquals(DeserializeNewerSetToUnknown2.C, obj2.e) + assertEquals(DeserializeNewerSetToUnknown2.C, obj3.e) } @@ -149,7 +150,7 @@ class EnumEvolveTests { data class C(val e: DeserializeWithRename) // Uncomment to re-generate test files, needs to be done in three stages - val so = SerializationOutput(sf) + // val so = SerializationOutput(sf) // First change // File(URI("$localPath/$resource.1.AA")).writeBytes(so.serialize(C(DeserializeWithRename.AA)).bytes) // File(URI("$localPath/$resource.1.B")).writeBytes(so.serialize(C(DeserializeWithRename.B)).bytes) @@ -271,7 +272,7 @@ class EnumEvolveTests { data class C(val e: MultiOperations) // Uncomment to re-generate test files, needs to be done in three stages - val so = SerializationOutput(sf) + // val so = SerializationOutput(sf) // First change // File(URI("$localPath/$resource.1.A")).writeBytes(so.serialize(C(MultiOperations.A)).bytes) // File(URI("$localPath/$resource.1.B")).writeBytes(so.serialize(C(MultiOperations.B)).bytes) @@ -345,15 +346,15 @@ class EnumEvolveTests { Pair("$resource.5.G", MultiOperations.C)) fun load(l: List>) = l.map { - Pair (DeserializationInput(sf).deserialize(SerializedBytes( - File(EvolvabilityTests::class.java.getResource(it.first).toURI()).readBytes())), it.second) + Pair(DeserializationInput(sf).deserialize(SerializedBytes( + File(EvolvabilityTests::class.java.getResource(it.first).toURI()).readBytes())), it.second) } - load (stage1Resources).forEach { assertEquals(it.second, it.first.e) } - load (stage2Resources).forEach { assertEquals(it.second, it.first.e) } - load (stage3Resources).forEach { assertEquals(it.second, it.first.e) } - load (stage4Resources).forEach { assertEquals(it.second, it.first.e) } - load (stage5Resources).forEach { assertEquals(it.second, it.first.e) } + load(stage1Resources).forEach { assertEquals(it.second, it.first.e) } + load(stage2Resources).forEach { assertEquals(it.second, it.first.e) } + load(stage3Resources).forEach { assertEquals(it.second, it.first.e) } + load(stage4Resources).forEach { assertEquals(it.second, it.first.e) } + load(stage5Resources).forEach { assertEquals(it.second, it.first.e) } } @CordaSerializationTransformEnumDefault(old = "A", new = "F") @@ -363,7 +364,7 @@ class EnumEvolveTests { fun badNewValue() { val sf = testDefaultFactory() - data class C (val e : BadNewValue) + data class C(val e: BadNewValue) Assertions.assertThatThrownBy { SerializationOutput(sf).serialize(C(BadNewValue.A)) @@ -374,13 +375,13 @@ class EnumEvolveTests { CordaSerializationTransformEnumDefault(new = "D", old = "E"), CordaSerializationTransformEnumDefault(new = "E", old = "A") ) - enum class OutOfOrder { A, B, C, D, E} + enum class OutOfOrder { A, B, C, D, E } @Test fun outOfOrder() { val sf = testDefaultFactory() - data class C (val e : OutOfOrder) + data class C(val e: OutOfOrder) Assertions.assertThatThrownBy { SerializationOutput(sf).serialize(C(OutOfOrder.A)) diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumTests.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumTests.kt index 1f20ac013f..60805c994f 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumTests.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EnumTests.kt @@ -2,17 +2,14 @@ package net.corda.nodeapi.internal.serialization.amqp import net.corda.core.serialization.ClassWhitelist import net.corda.core.serialization.CordaSerializable -import org.junit.Test -import java.time.DayOfWeek - -import kotlin.test.assertEquals -import kotlin.test.assertNotNull - -import java.io.File -import java.io.NotSerializableException - import net.corda.core.serialization.SerializedBytes import org.assertj.core.api.Assertions +import org.junit.Test +import java.io.File +import java.io.NotSerializableException +import java.time.DayOfWeek +import kotlin.test.assertEquals +import kotlin.test.assertNotNull class EnumTests { enum class Bras { @@ -42,8 +39,8 @@ class EnumTests { //} // the new state, note in the test we serialised with value UNDERWIRE so the spacer - // occuring after this won't have changed the ordinality of our serialised value - // and thus should still be deserialisable + // occurring after this won't have changed the ordinality of our serialised value + // and thus should still be deserializable enum class OldBras2 { TSHIRT, UNDERWIRE, PUSHUP, SPACER, BRALETTE, SPACER2 } diff --git a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EvolvabilityTests.kt b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EvolvabilityTests.kt index 10a59e1414..6d084408f3 100644 --- a/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EvolvabilityTests.kt +++ b/node-api/src/test/kotlin/net/corda/nodeapi/internal/serialization/amqp/EvolvabilityTests.kt @@ -6,7 +6,6 @@ import net.corda.testing.common.internal.ProjectStructure.projectRootDir import org.junit.Test import java.io.File import java.io.NotSerializableException -import java.net.URI import kotlin.test.assertEquals // To regenerate any of the binary test files do the following @@ -19,13 +18,14 @@ import kotlin.test.assertEquals // 5. Comment back out the generation code and uncomment the actual test class EvolvabilityTests { // When regenerating the test files this needs to be set to the file system location of the resource files + @Suppress("UNUSED") var localPath = projectRootDir.toUri().resolve( "node-api/src/test/resources/net/corda/nodeapi/internal/serialization/amqp") @Test fun simpleOrderSwapSameType() { val sf = testDefaultFactory() - val resource= "EvolvabilityTests.simpleOrderSwapSameType" + val resource = "EvolvabilityTests.simpleOrderSwapSameType" val A = 1 val B = 2 @@ -89,7 +89,7 @@ class EvolvabilityTests { assertEquals(A, deserializedC.a) assertEquals(null, deserializedC.b) - } + } @Test(expected = NotSerializableException::class) fun addAdditionalParam() { @@ -369,6 +369,7 @@ class EvolvabilityTests { // Add a parameter to inner but keep outer unchanged data class Inner(val a: Int, val b: String?) + data class Outer(val a: Int, val b: Inner) val path = EvolvabilityTests::class.java.getResource(resource) From 9b097aa98857379da2a49104258f465c479aa439 Mon Sep 17 00:00:00 2001 From: Patrick Kuo Date: Fri, 8 Dec 2017 14:35:49 +0000 Subject: [PATCH 11/17] CORDA-819 Add checks to ensure TLS and Client CA cert chains to the same trusted root (#2149) * testnet bad node info bug fix * address PR issues * fix PR issues * remove TODO for checking validation logic --- .../net/corda/node/NodeKeystoreCheckTest.kt | 63 +++++++++++++++++++ .../net/corda/node/internal/AbstractNode.kt | 11 ++++ .../node/services/config/ConfigUtilities.kt | 2 +- .../identity/InMemoryIdentityService.kt | 7 +-- .../identity/PersistentIdentityService.kt | 7 +-- .../network/PersistentNetworkMapCache.kt | 12 +++- .../services/network/NetworkMapCacheTest.kt | 1 - 7 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt diff --git a/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt b/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt new file mode 100644 index 0000000000..9ea387ec9e --- /dev/null +++ b/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt @@ -0,0 +1,63 @@ +package net.corda.node + +import net.corda.core.crypto.Crypto +import net.corda.core.identity.CordaX500Name +import net.corda.core.internal.cert +import net.corda.core.internal.div +import net.corda.core.utilities.getOrThrow +import net.corda.node.services.config.configureDevKeyAndTrustStores +import net.corda.nodeapi.config.SSLConfiguration +import net.corda.nodeapi.internal.crypto.* +import net.corda.testing.ALICE_NAME +import net.corda.testing.driver.driver +import org.junit.Test +import java.nio.file.Path +import kotlin.test.assertEquals +import kotlin.test.assertFailsWith +import kotlin.test.assertTrue + +class NodeKeystoreCheckTest { + @Test + fun `node should throw exception if cert path doesn't chain to the trust root`() { + driver(startNodesInProcess = true) { + // This will fail because there are no keystore configured. + assertFailsWith(IllegalArgumentException::class) { + startNode(customOverrides = mapOf("devMode" to false)).getOrThrow() + }.apply { + assertTrue(message?.startsWith("Identity certificate not found. ") ?: false) + } + + // Create keystores + val keystorePassword = "password" + val config = object : SSLConfiguration { + override val keyStorePassword: String = keystorePassword + override val trustStorePassword: String = keystorePassword + override val certificatesDirectory: Path = baseDirectory(ALICE_NAME.toString()) / "certificates" + } + config.configureDevKeyAndTrustStores(ALICE_NAME) + + // This should pass with correct keystore. + val node = startNode(providedName = ALICE_NAME, customOverrides = mapOf("devMode" to false, + "keyStorePassword" to keystorePassword, + "trustStorePassword" to keystorePassword)).get() + node.stop() + + // Fiddle with node keystore. + val keystore = loadKeyStore(config.nodeKeystore, config.keyStorePassword) + + // Self signed root + val badRootKeyPair = Crypto.generateKeyPair() + val badRoot = X509Utilities.createSelfSignedCACertificate(CordaX500Name("Bad Root", "Lodnon", "GB"), badRootKeyPair) + val nodeCA = keystore.getCertificateAndKeyPair(X509Utilities.CORDA_CLIENT_CA, config.keyStorePassword) + val badNodeCACert = X509Utilities.createCertificate(CertificateType.CLIENT_CA, badRoot, badRootKeyPair, ALICE_NAME, nodeCA.keyPair.public) + keystore.setKeyEntry(X509Utilities.CORDA_CLIENT_CA, nodeCA.keyPair.private, config.keyStorePassword.toCharArray(), arrayOf(badNodeCACert.cert, badRoot.cert)) + keystore.save(config.nodeKeystore, config.keyStorePassword) + + assertFailsWith(IllegalArgumentException::class) { + startNode(providedName = ALICE_NAME, customOverrides = mapOf("devMode" to false)).getOrThrow() + }.apply { + assertEquals("Client CA certificate must chain to the trusted root.", message) + } + } + } +} diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 81766c37d6..9699318f73 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -567,6 +567,17 @@ abstract class AbstractNode(val configuration: NodeConfiguration, "or if you don't have one yet, fill out the config file and run corda.jar --initial-registration. " + "Read more at: https://docs.corda.net/permissioning.html" } + + // Check all cert path chain to the trusted root + val sslKeystore = loadKeyStore(configuration.sslKeystore, configuration.keyStorePassword) + val identitiesKeystore = loadKeyStore(configuration.nodeKeystore, configuration.keyStorePassword) + val trustStore = loadKeyStore(configuration.trustStoreFile, configuration.trustStorePassword) + val sslRoot = sslKeystore.getCertificateChain(X509Utilities.CORDA_CLIENT_TLS).last() + val clientCARoot = identitiesKeystore.getCertificateChain(X509Utilities.CORDA_CLIENT_CA).last() + val trustRoot = trustStore.getCertificate(X509Utilities.CORDA_ROOT_CA) + + require(sslRoot == trustRoot) { "TLS certificate must chain to the trusted root." } + require(clientCARoot == trustRoot) { "Client CA certificate must chain to the trusted root." } } // Specific class so that MockNode can catch it. diff --git a/node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt b/node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt index 0582ce8768..92b113075a 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt @@ -50,7 +50,7 @@ fun NodeConfiguration.configureWithDevSSLCertificate() = configureDevKeyAndTrust fun SSLConfiguration.configureDevKeyAndTrustStores(myLegalName: CordaX500Name) { certificatesDirectory.createDirectories() if (!trustStoreFile.exists()) { - javaClass.classLoader.getResourceAsStream("net/corda/node/internal/certificates/cordatruststore.jks").copyTo(trustStoreFile) + loadKeyStore(javaClass.classLoader.getResourceAsStream("net/corda/node/internal/certificates/cordatruststore.jks"), "trustpass").save(trustStoreFile, trustStorePassword) } if (!sslKeystore.exists() || !nodeKeystore.exists()) { val caKeyStore = loadKeyStore(javaClass.classLoader.getResourceAsStream("net/corda/node/internal/certificates/cordadevcakeys.jks"), "cordacadevpass") diff --git a/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt b/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt index 81cb4f75fb..e3f3cc233f 100644 --- a/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt +++ b/node/src/main/kotlin/net/corda/node/services/identity/InMemoryIdentityService.kt @@ -45,18 +45,17 @@ class InMemoryIdentityService(identities: Iterable, principalToParties.putAll(identities.associateBy { it.name }) } - // TODO: Check the certificate validation logic @Throws(CertificateExpiredException::class, CertificateNotYetValidException::class, InvalidAlgorithmParameterException::class) override fun verifyAndRegisterIdentity(identity: PartyAndCertificate): PartyAndCertificate? { // Validate the chain first, before we do anything clever with it try { identity.verify(trustAnchor) } catch (e: CertPathValidatorException) { - log.error("Certificate validation failed for ${identity.name} against trusted root ${trustAnchor.trustedCert.subjectX500Principal}.") - log.error("Certificate path :") + log.warn("Certificate validation failed for ${identity.name} against trusted root ${trustAnchor.trustedCert.subjectX500Principal}.") + log.warn("Certificate path :") identity.certPath.certificates.reversed().forEachIndexed { index, certificate -> val space = (0 until index).joinToString("") { " " } - log.error("$space${certificate.toX509CertHolder().subject}") + log.warn("$space${certificate.toX509CertHolder().subject}") } throw e } diff --git a/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt b/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt index 66a5ea4024..f26989e7bd 100644 --- a/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt +++ b/node/src/main/kotlin/net/corda/node/services/identity/PersistentIdentityService.kt @@ -110,17 +110,16 @@ class PersistentIdentityService(override val trustRoot: X509Certificate, } } - // TODO: Check the certificate validation logic @Throws(CertificateExpiredException::class, CertificateNotYetValidException::class, InvalidAlgorithmParameterException::class) override fun verifyAndRegisterIdentity(identity: PartyAndCertificate): PartyAndCertificate? { // Validate the chain first, before we do anything clever with it try { identity.verify(trustAnchor) } catch (e: CertPathValidatorException) { - log.error(e.localizedMessage) - log.error("Path = ") + log.warn(e.localizedMessage) + log.warn("Path = ") identity.certPath.certificates.reversed().forEach { - log.error(it.toX509CertHolder().subject.toString()) + log.warn(it.toX509CertHolder().subject.toString()) } throw e } diff --git a/node/src/main/kotlin/net/corda/node/services/network/PersistentNetworkMapCache.kt b/node/src/main/kotlin/net/corda/node/services/network/PersistentNetworkMapCache.kt index 3efb461a81..aae71515ea 100644 --- a/node/src/main/kotlin/net/corda/node/services/network/PersistentNetworkMapCache.kt +++ b/node/src/main/kotlin/net/corda/node/services/network/PersistentNetworkMapCache.kt @@ -20,6 +20,7 @@ import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.serialization.serialize import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.contextLogger +import net.corda.core.utilities.loggerFor import net.corda.node.services.api.NetworkMapCacheBaseInternal import net.corda.node.services.api.NetworkMapCacheInternal import net.corda.nodeapi.internal.persistence.CordaPersistence @@ -37,13 +38,22 @@ class NetworkMapCacheImpl( networkMapCacheBase: NetworkMapCacheBaseInternal, private val identityService: IdentityService ) : NetworkMapCacheBaseInternal by networkMapCacheBase, NetworkMapCacheInternal { + companion object { + private val logger = loggerFor() + } + init { networkMapCacheBase.allNodes.forEach { it.legalIdentitiesAndCerts.forEach { identityService.verifyAndRegisterIdentity(it) } } networkMapCacheBase.changed.subscribe { mapChange -> // TODO how should we handle network map removal if (mapChange is MapChange.Added) { mapChange.node.legalIdentitiesAndCerts.forEach { - identityService.verifyAndRegisterIdentity(it) + try { + identityService.verifyAndRegisterIdentity(it) + } catch (ignore: Exception) { + // Log a warning to indicate node info is not added to the network map cache. + logger.warn("Node info for :'${it.name}' is not added to the network map due to verification error.") + } } } } diff --git a/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt b/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt index 861742ff2a..0597bfbd40 100644 --- a/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt @@ -3,7 +3,6 @@ package net.corda.node.services.network import net.corda.core.node.services.NetworkMapCache import net.corda.testing.ALICE_NAME import net.corda.testing.BOB_NAME -import net.corda.testing.DUMMY_NOTARY import net.corda.testing.node.MockNetwork import net.corda.testing.node.MockNodeParameters import net.corda.testing.singleIdentity From 47625692008a1e3b411ce01a27cb4f8919e6f88a Mon Sep 17 00:00:00 2001 From: josecoll Date: Fri, 8 Dec 2017 16:27:12 +0000 Subject: [PATCH 12/17] CORDA-822 - JMX Jolokia instrumentation (#2197) * JMX Jolokia instrumentation WIP (driverDSL, webserver, cordformation, hibernate statistics, access policy config file hardening) * Cordformation changes to support jolokia agent instrumentation at JVM startup. * Minor updates to reflect usage of Jolokia 1.3.7 (which uses slightly different .war naming) * Use relative path reference in -javaagent to prevent problem with long path names with spaces. * Fixed incorrect regex pattern and added assertion to test. * Enable JMX monitoring. * Reporting of Hibernate JMX statistics is configurable (by default, only switched on in devMode) * Make Artemis JMX enablement configurable. * Re-instate banning of java serialization. * Improve JUnit. * Fixes following rebase from master. * Re-instated correct regex for picking up Jolokia agent jar. * Fixed broken integration test. * Updated documentation * Updated following PR review feedback. * Fixed compilation error caused by change in DriverDSL argument type. * Fixed compilation error caused by change in DriverDSL argument type. * Fail fast if jolokia-agent-jvm.jar is not located. * Applied changes in cordformation following review feedback from CA. --- build.gradle | 2 +- config/dev/jolokia-access.xml | 23 +- config/prod/jolokia-access.xml | 24 ++ docs/source/changelog.rst | 3 + docs/source/corda-configuration-file.rst | 7 +- docs/source/node-administration.rst | 25 ++ docs/source/resources/hawtio-jmx.png | Bin 0 -> 247343 bytes .../main/kotlin/net/corda/plugins/Utils.kt | 7 + .../kotlin/net/corda/plugins/Cordformation.kt | 5 + .../src/main/kotlin/net/corda/plugins/Node.kt | 28 ++- .../kotlin/net/corda/plugins/NodeRunner.kt | 24 +- .../internal/persistence/CordaPersistence.kt | 3 +- .../persistence/HibernateConfiguration.kt | 24 ++ .../persistence/HibernateStatistics.kt | 227 ++++++++++++++++++ node/build.gradle | 8 + node/capsule/build.gradle | 2 +- .../net/corda/node/internal/NodeStartup.kt | 8 +- .../node/services/config/NodeConfiguration.kt | 2 +- .../messaging/ArtemisMessagingServer.kt | 7 +- node/src/main/resources/reference.conf | 1 + .../net/corda/testing/driver/DriverTests.kt | 17 ++ .../kotlin/net/corda/testing/driver/Driver.kt | 16 +- .../corda/testing/internal/DriverDSLImpl.kt | 37 ++- .../net/corda/testing/internal/RPCDriver.kt | 42 ++-- .../testing/internal/demorun/DemoRunner.kt | 2 + .../net/corda/explorer/ExplorerSimulation.kt | 7 +- .../net/corda/verifier/VerifierDriver.kt | 5 +- webserver/build.gradle | 2 +- .../corda/webserver/internal/NodeWebServer.kt | 2 +- 29 files changed, 489 insertions(+), 71 deletions(-) create mode 100644 config/prod/jolokia-access.xml create mode 100644 docs/source/resources/hawtio-jmx.png create mode 100644 node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateStatistics.kt diff --git a/build.gradle b/build.gradle index e124945ddf..c927d04987 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ buildscript { ext.jackson_version = '2.9.2' ext.jetty_version = '9.4.7.v20170914' ext.jersey_version = '2.25' - ext.jolokia_version = '2.0.0-M3' + ext.jolokia_version = '1.3.7' ext.assertj_version = '3.8.0' ext.slf4j_version = '1.7.25' ext.log4j_version = '2.9.1' diff --git a/config/dev/jolokia-access.xml b/config/dev/jolokia-access.xml index 9b4acde879..41ff27a44e 100644 --- a/config/dev/jolokia-access.xml +++ b/config/dev/jolokia-access.xml @@ -1,5 +1,5 @@ - + post @@ -8,23 +8,10 @@ read + write + exec list + search + version - - - - - java.lang:type=Memory - gc - - - - - - - com.mchange.v2.c3p0:type=PooledDataSource,* - properties - - - diff --git a/config/prod/jolokia-access.xml b/config/prod/jolokia-access.xml new file mode 100644 index 0000000000..c17fd09320 --- /dev/null +++ b/config/prod/jolokia-access.xml @@ -0,0 +1,24 @@ + + + + + + + + 127.0.0.1 + localhost + + + + version + read + + + + + get + + + \ No newline at end of file diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index d84fd4eff7..01270b15a3 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -6,6 +6,9 @@ from the previous milestone release. UNRELEASED ---------- +* Exporting additional JMX metrics (artemis, hibernate statistics) and loading Jolokia agent at JVM startup when using + DriverDSL and/or cordformation node runner. + * Removed confusing property database.initDatabase, enabling its guarded behaviour with the dev-mode. In devMode Hibernate will try to create or update database schemas, otherwise it will expect relevant schemas to be present in the database (pre configured via DDL scripts or equivalent), and validate these are correct. diff --git a/docs/source/corda-configuration-file.rst b/docs/source/corda-configuration-file.rst index 346d92ff90..b8361203e4 100644 --- a/docs/source/corda-configuration-file.rst +++ b/docs/source/corda-configuration-file.rst @@ -73,6 +73,7 @@ path to the node's base directory. :serverNameTablePrefix: Prefix string to apply to all the database tables. The default is no prefix. :transactionIsolationLevel: Transaction isolation level as defined by the ``TRANSACTION_`` constants in ``java.sql.Connection``, but without the "TRANSACTION_" prefix. Defaults to REPEATABLE_READ. + :exportHibernateJMXStatistics: Whether to export Hibernate JMX statistics (caution: expensive run-time overhead) :dataSourceProperties: This section is used to configure the jdbc connection and database driver used for the nodes persistence. Currently the defaults in ``/node/src/main/resources/reference.conf`` are as shown in the first example. This is currently @@ -163,7 +164,9 @@ path to the node's base directory. Each should be a string. Only the JARs in the directories are added, not the directories themselves. This is useful for including JDBC drivers and the like. e.g. ``jarDirs = [ 'lib' ]`` -:sshd: If provided, node will start internal SSH server which will provide a management shell. It uses the same credentials - and permissions as RPC subsystem. It has one required parameter. +:sshd: If provided, node will start internal SSH server which will provide a management shell. It uses the same credentials and permissions as RPC subsystem. It has one required parameter. :port: The port to start SSH server on + +:exportJMXTo: If set to ``http``, will enable JMX metrics reporting via the Jolokia HTTP/JSON agent. + Default Jolokia access url is http://127.0.0.1:7005/jolokia/ \ No newline at end of file diff --git a/docs/source/node-administration.rst b/docs/source/node-administration.rst index 7a677c34d2..fe9b9231fd 100644 --- a/docs/source/node-administration.rst +++ b/docs/source/node-administration.rst @@ -93,6 +93,8 @@ formats for accessing MBeans, and provides client libraries to work with that pr Here are a few ways to build dashboards and extract monitoring data for a node: +* `hawtio `_ is a web based console that connects directly to JVM's that have been instrumented with a + jolokia agent. This tool provides a nice JMX dashboard very similar to the traditional JVisualVM / JConsole MBbeans original. * `JMX2Graphite `_ is a tool that can be pointed to /monitoring/json and will scrape the statistics found there, then insert them into the Graphite monitoring tool on a regular basis. It runs in Docker and can be started with a single command. @@ -105,6 +107,29 @@ Here are a few ways to build dashboards and extract monitoring data for a node: It can bridge any data input to any output using their plugin system, for example, Telegraf can be configured to collect data from Jolokia and write to DataDog web api. +The Node configuration parameter `exportJMXTo` should be set to ``http`` to ensure a Jolokia agent is instrumented with +the JVM run-time. + +The following JMX statistics are exported: + +* Corda specific metrics: flow information (total started, finished, in-flight; flow duration by flow type), attachments (count) +* Apache Artemis metrics: queue information for P2P and RPC services +* JVM statistics: classloading, garbage collection, memory, runtime, threading, operating system +* Hibernate statistics (only when node is started-up in `devMode` due to to expensive run-time costs) + +When starting Corda nodes using Cordformation runner (see :doc:`running-a-node`), you should see a startup message similar to the following: +**Jolokia: Agent started with URL http://127.0.0.1:7005/jolokia/** + +When starting Corda nodes using the `DriverDSL`, you should see a startup message in the logs similar to the following: +**Starting out-of-process Node USA Bank Corp, debug port is not enabled, jolokia monitoring port is 7005 {}** + +Several Jolokia policy based security configuration files (``jolokia-access.xml``) are available for dev, test, and prod +environments under ``/config/``. + +The following diagram illustrates Corda flow metrics visualized using `hawtio `_ : + +.. image:: resources/hawtio-jmx.png + Memory usage and tuning ----------------------- diff --git a/docs/source/resources/hawtio-jmx.png b/docs/source/resources/hawtio-jmx.png new file mode 100644 index 0000000000000000000000000000000000000000..42d450483044dc8d81c7e7354f2cbf7ed1d64123 GIT binary patch literal 247343 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 z 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�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 YMk=5E|K-tXyG8Vyk|SpNlllKm05hC~;Q#;t literal 683834 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%0D1g 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 z z(?4Vv>I{*uX;nf#n%l17ru&_Ea)TmG&Lut|Sr8plPh5eejVSNOsb6w(R5{BpQ-^j! z2A^A!ma2!*CxdwfFePjp}6nDS-!{L7@8E)aPQ656Tx{f)?A+`BR77`7965c4-Hks-^=S zY9_2{a}c07&R(H62N5C&C4Iu!*zj(agJut#jYwc#^`v;Z>bJM|n8zbHsc$KPg%L|S zSE=PnzCVu%E%C@}XVQEa0*2vPc*uwK(xg5K7FrTn{C=q8wW|cP=#>v4eIlGBMRMke z8e+nJx&{aW+PS~ooc$D;VFu?ncOjIP8y2B*jBnP1Do)QcyRW6>S!Y7}Ft>#hO6!3}Z0z$R>DYz%D1B@<<0irC=ZY_&7 zr)$a0_uS;Qb7|IhZXy4jre z1j138wq+^j?Fte9%pH061tTb0;CITtjvHCzL=H#_y^V5*obdwk!|d<{r@BkGbKYW0 zY8I9zqzlyi`%KqdyXLw4cM5E&Z;GGk@KOtDXK6DKLBIvu4#$)Kso0aRZP>1VE!^}{ zg?>5@3n{LVJiEf4p4S)aQUCrdrS{t(`TWTx@-fMUd{AwVyojkoMJ`J>J+J+lIP!+J zts7%Pi>lX^EN_q(Nc_mJC$k3jA1)@|Lrtg5= z_)M8-1-GR2P^EbN=a|dyE%}zZSzcP0P7fD!0P&LJs230bYJ-t=E|3HMg77KXgiQm& zMxv@wsAANkP4mtLq0^+s4||En(bn~$?n%xW(9;wiASLkv9-RbfDvlTj1b-EaKpmS= zt1;zpa%KJE;OIrC=(8SgU-|{P%5<~z+VzL@RC+5u96VNso}gb*3)4CKMZOXC7sRzF z^vN{LnoB@QkxlE3yDO-DKW*GjT0Y!^egFu#U706A<}s@}iG=(^qPp=9P=UJ7!bH!SGDto*J^e`d^8V>x zXnnEEz3frCAoeq$Le8;+c?lp?yns-0gZOK30CM)*GP$DPRxdWz8~)^-)NAXlr#@+o zQ7{v3$*aGOK#yKMc$)#0(F5M)AJk$YoO^8Nc?0;W@#zkw+S*F&4Ae`owg#Ll5#5@* z`@MJ|{n15!<%a@vDl2V(;`sBjHko6M^E~Yvn4Jc(w*OWUixeu|w$ykzA{j|s??`x( z)EB7|edDFCg7{0-XRtVGJz#lIAVTpYO80_=$vjWOZK1Jq$9$?kp8kI2iG2|wYV>>5 zNP09z5ePtDLiC2?fEUh-LQhSjDNwG@(lmEyD!ILW#>5AAW0rdsZXe+q8(!bgRMVG! z;T>}&)56BMfl=PVXaQE3hS7CSN2;yJ(AdWOnm zr=)>u7sieW8Aj0O8?+djz?M}TUvDa_$J6vstEa&k&TthlE}j3Ja0G+k4E!|0{8uX3 z5UStcb1#t800#rgPt=utD&Wn|nfe#xv+`{D8nu|l*1yUbn{6AOk3Li5S}C`E-Bvj=%s%y&+?-AMF?AF;ar z@ezUTyqBRroah15V|-UQXp^Eqvwj^K3$G-14o{eLHuKrmMasdTmqK*4pDjCC$1Vq` zJY{V-v5EkYAdv_NOmjIChJ%2{JVWJSWr!>sTH)88&iox^E;aKHX|G~f>AkxJ1cuNv znlkijN>~`lg9sg%m~S^A8x@mdq=*`^->3EqXW*F~RaG_Dw3|aCeO-?NMh!WlzReW_ zE2x8{2sxx`2O)JY6nDS|3whwspwRrX<@~o$Ho>^Ezo5J3;`Yoc0hlK~*ub1W;t8PN zY~A4cw-}ZVD<2e~gTU?=tl~sQt#r6CA2m~6kH~WwoNW#rG4WX+9=aeq)_QUI#Wdt` z!Tg*x^(~EgOXn1^@u}-vy!^hBWX^%vlB}kgmJvVK2={&AOQ6V(VDtwWpaLo-Vd^#Z z_^K)P#nZXi8X)7S>Q=1T45Z0q0=rk%+{B9$KU<=**eJ+G3qZq*d8dV@iIUcT=?o9^ExVy z#vHM1d$7k@NSoBs5iUpLY82NDo0?86s})LH^2)TC~W2U_=3% zEm1mZIqi&>tq2BaT6p{gef!g#_b$B9)9Qnv$kO9_5~t@!WjawPu#0-bo!iKQShAZdBgd};34fDRg)PJqxq-#g6vu**` znZ>UWAp1du`$?!{4Fj z{|-ApUgjEW8fnuxE-Y#=ruO`XaHXZNdPMSl5Vw;)=x5pgnz;3U&?jW}-|O^txSuFs zck*S3obeqTYX|3$5J2KSl-aak!VB|`|0MmKo za{$Nbqeqdb%s_9%BEKNWL;HK)uQzKgjZR6(q{CV>r*XOIAM~5(f0jvnJ(w6rE@H)V zwJOhF*Xaja(wDb`b6#O!Hlp|`A*1eKQRjF|urgLZ#8YG;MC^bngV*&Xl6yK6m zN>Hhcf1(=d&24u^XBgi9VTN6ZX$<4J1W=7TTLIUN^0n2?sC^2`hj?mTGRF>nW)b1M zs}c%-{3m>rXo_2Nkso_)5gOiZ#Ax*0{||JRSdM_<(D9u-2(5lBEvjhevEFol4OSk@ zYIrU6?%M&^l*^$HLtb7C9<1||o7TAqAgaJJ0Zs>lp6hscQPVVv8LJpE9%&Tp%Xauq zmSsq!Kja}@LFubhCVBCVracqNtIN77AW5|4wi?ky?}ZS? zR~%-Zn6Y{4ND$xun7-abJ&0|ztGP3PMT|?v*Gf2~Yl1sIyg98c8USLRnXxJWaKQ?| zFK$^#RF)i8HCScMBFGXPlL9nwX%xP*pMeY(Gkl7krLcdb+?W3iw5aPaKyNvoCy?IZ z^Mc_GTW#vq$1V3CHGfw4G9>XR!0){&BcdW20NdEexh4P@6^f(6dsherUOwfXm$!o_ z_2ft8U1lr;By#S3=s4FrJHFQoli7Ht^WuMiN9Z?DKp31wOCRQ}qZyu41d&QRXX3aq zyJJq6TI|8Pj$lK>Bse4$0@)RvAIO{EjoXw4WlaG7j;s&5Rd-g-27Pk8q;B1L(GF|7 zJ!@qr`n9m31!i&kUePne;=$tB#9gaet8*a$DZUwc?#W8@bYsCnPV<}4D%~R0b4_(Q zr=_Hhdf~09^ukH`GjvB?)HHA3C%0Cw2ja~V)l)&$5qA(zH}=0R{02Gsthd<(eac~= z(@imsVcFU)rI?(ozcMP6iArZrG`4;eI)utwaLi<6>bFgThKvs;eOWC@|3`x*R$@iX3b6K zhbu?vO)x_7fT{D+=I%7$rw%+t$=d4ZTR>?-tT<%%0X;p2oDp-xqiCu6EGdKM#fLm4 ze#TYjkIwo-b?4adkhlmip(PRMDkk4Ep_Z)K94PE+H*$!c$XT^#k9tRzj3ljrzOVYv zKD!o%dhzF#ZOgMD7+RE^K3%J6;^iT2+x&teGaR|*Wigh`2vBh;e7Lx}{pEeFu#A23$8KSzREYZm=Xvsc z=S8wozb&TsFNk+>VbC)yyhOcSirOLhI(;8|D3lm_*Y35!g(SnmwcusBAHYF2&0GW&q~45<9Ck;u^CLdb-9*s0B<#I?SzmTS151|Gf*@lMowG%%%bjP8Nx~W9=-nDv z@zVAc%$W#)=)mgX%Btqoc6px_rDqW-&Hzxms{I!YuKE{_8oRI znaAGl*Q_DstzYU8aZNyj9>_o-zD8YJZ!e_WYTf zE9l`1yA6F;#j0w57^8NsI_}d@ZNRv>h)WKASWwKnCsCK&C zf(Zm~@-?|UJ)?^^@M6jNF<)2R!N-jrcGs>l03hc7e+y(x*o_WTp`)_BTfNSK8vt^FgcE_VndG^5fAk6CND{$Sq4H{TS zNuk~tSr8`n=+FP?b@ZS0>i_vh0H6OWWqr9?1WvR52Ouv4J^HurY|W&+Xs3O@NP--<=~>c);@(HP62k`a>89k*HJUNp zaAsUC>BzWP6I>qBl&p)r&AV~&<>rM_wiFIfm;%pdV7%@kfGLttLL92c2*AeS?%?^q zAn({cVC<xv%e z-3MR@TxXPV&bDO7M}u@3ff-|Qz2x0E(+#$dA!jeEsLoitlT4Ap+E|N=$&U_#=!PWo zpWUPXQ7dOm&iuy!xV>!>X;J2Nc59b+!#M26evIWcvwwWRbjODwlNa=Bh}XXcOwbyr@=_(#0PTHR)t6piZVG%9U=PSc zALax{Aln{3_O1;{^+r=}DgEuDoV;VsgFo&IgoxuQqY<`2Osd}1ZkgtjTHFErOFe1z z)jn@%UN~+uZvrGWB_eVV$$|;OPcA;6as=vIJ6nh%3%XtBJ`l{a}hlJvUQ4dR%52|o1O%j&_`i%u|_vg$~W z@4al<&H40{lW4D+%En>&6RxK?MO|G-H-Q{;#zBq;!;+E=cYr6j_MGA?U=0XcwlSJm|Jj|UjhY`#y!A>k4&5;dj~%z^^Ka@}X!q7E{u zEbXj!B$Uk4dVTN4d4Sb?i$*HdUw`%Ku2tEXpj6ZFUeM~Zk6Gbu3cjT5JGU$Lxbt%n z(>zzJmmpPDFE`Bpo@;f}bk_htyY6;~;qxPy|D10%IhAUaRC@T$$%;Q|-V;SMJPaTs z-&fRikdxa{;bLaaD%pE0T30++?Z$d~w($D9qwYrmofnQ=mX1ayVacCy<#4b5l{72D-&_ z`aKlbD50`JDB`}CrTbgY;#UCBJ&<|k)4Tf7JMo0aMymIw->dL$=YYOx_$cu7(UZYZ zMlC-v(l~udvuWYu?ZpK6&hw;ACDQ|zbV@-J1sS%{a3E04+S%5 zXg!lzARPZkA+UPV_l8B!-D5i}7}LB-v}_Z8ce2+;>bE z33{XcBOxwE#=E)wNxXKkLkkAQ~Pzx_HNt2&5mvHVG(AZ z7IdYP=S@GiyuT+-|M;UaR(@$h4B3gMnI>A0bi z*}Uo+<>a-Z-FN-@vSnLfjmpHy|6aMH!fJGrkcaiNmZA8qNymKF?(Rjf(}y)e_h-7d zLb-EFPHVt+6h6e+`t<5pyH2|4FHb+G!ezwsqdyKeS$_DM-pw2Ky$qwVoW*g#HFkO@|QAUL7Smxf7;FKWw9KW!8ej33JYnY&DgIq zPQ-6@Vj=j41a>@}@V{5Bu=9T(hp4ml!0i7($rF^88V-x_7!?eQ=9F<0>OvPeAE1|X znj(~SR2v%d8L{Y_eB$GwWzdXio;naMh~GU93K#UZ6gV2Nf0drOKqV5^wWq@RpynZ7 zHnA!Fv%Wt;%Wy*YdOUF)g9iQr>?*`y!XfdKd=ZQE@ruE8z7YoGAmw z@R(=%*9=>wS=u8l>o*ePhJzd(8G8dh-})N=eS)O=nTUFpVvb)a_NcJX&C6m*2jiQS zxg~xe6^3RIA#1iYmT3F|8mBC4FjI|x+0cTC7K-zoa(sqegmg_%T5AN+_wd9nWc8U4 z(syO*tbjEyjq@;2i}|s9@%^=>DLAB$wBP>e#arq_AW|OK3q*wl&T&>)fP%ock#M%6 zj@I~j@cX|SZkDPJzizpb7ZhOjrBQ4{1bsi(RV^>7=7iHPaT^NVowA&2RLGgjlpj}0 z2ghzSFx#s}2vilZP zX3?xMgATnY3ntWFJOBsH(_Pi@0!E0y zTG`ZE4@i$nT+ls{qr!-^|3JPIa~L~!tAMJOBXDXTz!e@*H4ZH3)ptYqHRxrmSk6ABYNV~m^9wJjEm;SKki8A}48Ik!eDBGNz6-kmx;*{6RxIoA5sU1s*J zPnoZ;)X-frHb>cyeWFyqeN{Lb%_w7(%&}fQ`vk zkUGOnuIIxKjk+0_WW`M#8Xebe|C)mqz%RNw?oU_ydEJ7i=mYc>;q3h?v3vQh@46J% zlM=)Xr>Q}E4{A`D5W;rv6$P<(4H+%F5S@EH^nQYI+No|rW4yJR3$2lLc=0=K@AqNt z)ex(*;JrN&iLnqZqn6~!$$1VP=Zrq@fq03LkvwCXOMKM>n5 z1f=~exzIVpGIe@DRU*=AIkh5PLDT?N|_^UN%oHu*39X|l%4mO9si zBY+dUTKE5y1zLa^7fAxY^*RL_7ax&}_byy6iK|=4^`=1t1u>}{VMWyajCeA$|Ej)y zW-&DKKDOzg;3QLbbSCyWIdK1GXMWfah>~r>7XWF2@`#B zvfZ7rIota{Lqy-6c}HO;qX;5`|3&5{$~$GI%6yu84_nO__oJzu)WG+yNRItNqQi)g z(tVg>2ruo+LHCHoClt8ZiTb5&jayDFntMnfAHED~Y^Ce7d+wyccaudsV)FwiV1hE~ zYUVlI9{2`y8${Vb@zB^NP9FN*Pyu{UEywGvS$2^VF0)aG)PlvnT2Wfd?xf=ZO`!>d zkCH#mK7NJsGK(a*PG`{D_ADDazQ6Bl9j~5l^(|%}>d@32jWc=4sT6x;@Yv`Vb)hFI ze{B8Kaia3-CXs$ECCXn%>Qb_+Ei#Oqukm(wP3nbmucqqDp3Lt?Hx_v0wb@DER z+82@$QJS#0Rue6i5^Gi6xrStcDMWqSFKLi#>(HtC8$48~(b_X4(*EJrkSH!qGs>D) z!@o@+E1}bkhZ(;9ybbV_VhyN>23GC(&1lqT8ye2I11VgEe_){Boza#NOTIXE2F)+Y zNB>xGz(h#^5Gr=Q3za~a5@T2@z7m;^4uV5u^{4ccKitFA=g+EZuWY#?aFd1EMX6U7 zJ&*2hIee=?+#)7m?eFeg$rEp`D;m%VCU{aD)D`ZY!`$CG&ULfg$ArCVY0A7=q+u`1 zB%y7p^V~<9GWlw9g@#btyZUQ=oh2RD$-WGqGqC2rpDj&dOwwFg^t1lb(vsl5^nUGw zFGt5MHuUwkf?cZsx%)J6`cH@A5{&*c36eOH!y5Bv+gN#aR=jDp4(y0~uDa-472CO4 z?(*Gs{Pxv&ha_RO+x{*>im=-E@FWj5NNuLCQJJZz$jo_7%k5PfT`K5PbavjyOc%lU z-B(2J6?S4}=zWs-tXA~P*-bH=E$`yL^UzA~FrT_O{tM~fYwT0^2ATLjF_4XgE`;8j z!-!poAT(w%vVkH|8*kslReuKSdU<$Dy;&M%zZ;!QnL3@U%6@mQ4Su`(iV062@i&E% z$TGmCs5-en$tma2b=0Tg_?Z8YWehhc5GSl7DBW7I!{OXnwDQ|(xiS#2LDFWP$s9j` zZ$_Iw_`M5%^h2BXg!$-M3|{dxoM`)!C!*sP>3JP+Yg70|^;(#uTR8O9&Mlw|RHqt9 zw_Krr7rw|bR%!aC`1`eYkDVqe|DqNnEb()ZF6lZ6gD84Wv6GE@h?>Y|6)7N7;T?ZU zqm<7m+iMrbi1g-G2f`|jBXm3ozp)ZQ_~u_jG!NH944UyLS-aQ^T|lqyTMn#ZYf3uk z5Dbk(Ywv1!srBpu!gd|WqI0Kh01dCWoBoeC_H+21e>qq6bec4yk#Pz`(!GRE=u5$_a zdS56Rfv$Mn#s=Q`v@Je_<9z1&`wyKtV2N&@u!*ALY)2~7+J4yYns|H4CIFRCqe0BW zZ}&O$Kx8MXw(4|SJv2`84p49Qz?oUii#RuaCSLfwfL79xX{`lYC=W@3mn;f+52UZ1?e<_HgqV?9fIT1OAjx#`TLKv(fj*@%Y**&|pQI@AnZ zSctAWMKKhQXP1q6f>TEE-~Iy~q{ec-(nC}%=A29R*f(4d?N7~9PTdrKw>siy#$!60 zAfvUny*=?j2gT*sV0pFOC3{S~#lOndcrD#s4GX%OX9NoC3QRIEgeu(LU$M*bF4^b7 zaGN3i14%-m%Ztf@AbNWIt%&uMg;3={TxctS91sk~MAwz?yuFoyT`aC;Sag&1`PDSK z5yqiYnqy&mDu48oy1I9$8i>Qic?}rQ5M>8ycNdlx4%#o2;h6*L#%*Yg#Jwx_{7J>~ zs1fmZD7WMvo6F&4H(VJ%fQU72s5PyABsnpqk0Yf^jC&sLrB2ZQvyicpTInWef^O_= zQ>^xUZKarNo-m4BQF>-e8}-p+hR)F z=uHA=W|E3}oP$REgAX3s(_%_#WXJY>$OVVK9D~7c*X*e<<|t}}*kzsrZf}#fV2M~m zu9wPr-J@yodRncLmfy|OlN2)8$^#(N&KMU^=TN!y3$EDvT}hz0svT7C{)Sw%H1tat z1vXQ?Iq|)UtK-_nBtqdbz2hzkLZqv?8vpJz-3Vnux>ju*e_GPv+H#0w5$J%y{G-`& zYvZUub48@bM05Hc`-laDo^k43VNt2v8)5zr3ju}Y-!J*FdBcx~K`sH=(`bR%@wcFz zD=wn7Azmw7%IoIt`Q>4}msGodw5@@m6Rf?2{c@x7^R=b*Ir6k;I)C;OiGhX0K^44a zQXxWRZmyr3uMut1F+DjWJiGhy(|6v)56>PymRnaQ*yjD;Rt5wm;kNNyCDe_k!XOTa z#1eehsJP?zk;D~PT7N&n`=05AY2NAY;>hJu?{B7_Ds=3sj4O1CKw(CgTz(NqR5Suk zrBd6*3xmiefRcHCW_|Na$P>cIxJI2Ic* zNp4Q`^>+JIuD0g%TKr5wYSq42rlYBjopS$1*v6A*b31?>mnWJIN$6B14qg^-Cb6na z|23!!l9xcbF3m3mt#}g9F7pBVzXCnSu!#)xc^Ksq;IolIKqog<=?-$tMF3NoWguE8 z$1V$dkx`d}3z2oVwX<8Ikm&dq$EZ$SP!O(mc)t!ov7Q2in1?<@_)Ufi5=)S5fUSEx zO3K4UKZx0Av+C)t@6$ON1}abOcba3d9j^vCnQ5Pe0MIcW0#DDC!W_v9&pD8p&z>-F z8#qadb{8Dn-y*Vlq@!v)GKCT>d9#0-k8;j~9~G6!3!tb0cRTJ_RU9h7jIC z1R?#Y$|j40eIqusWk|V=dh90CGOop9lA-g#6Uz-3=g+sydw3|X_(>*s&2$3mz$!CI zs|cReCsXHcsD`~L+n4$#WveNWyu#@vGKrH5qqbWgaibFHlH=9_xFb3+P_*_4RME4h1ZtZ(`s^+7B~@bV_6l%YcHv!NjCz4NS| zi@ZSFTw65ptu%AHt(gEO*TPoIAhXAy5n@Poxf5`?C`A9^QL+kU7BRgK$#O*rpdzvc z>A7L4@T`HhPXPtP&!Xm~=px~WJ%akJoa5}%fV&2g^?FTK_(D5BN5ijwwVg5X^ z=kx>mNMpi5oSSGN->yX80>$6jdzrc}QyDCBA{*Tru0Mv@?xE}Kf|q$t9j2s!t^vG# z?Vz|yw*v8yz+9o~^kr#a)VDDEmZgYTVpPXi4E=R4c2^6!G!HV$hvf*e%g-27>>$y8 z-78TCxdzN~hl50#lSMG9A+I!N(K&!EP=q>5wOOaI+5F9DQqcy8BWr-pljblS#Z%Cd zKZgaz?=Tu=NwcXOtnQ47d--r~y^4JqU_>pL!I(eS%6};h)^^Pze1gb2JeCY01da0#5=8!IZaZ+0fx9F9#sZs<6= z&OT|+;L3jUi+`FGpl)!|N2gfj_E44R|~*~h%qtSK6VJr2(HOgFX$TXJvd$R5O6lKLaEX*O#4 z-_vJH8AR@tTrF7}_h0el`E_1%GgmPv!<2a6DwKlgZH7sxU)g`$H5lcWbjiUgk+0ix zxFKo$c%pf3HC+dKSOg)QOOjvXjGc7W1!Qv3WJaudJMQisH&Pk(lWOY27kvyZHGrw@ z)lY8^2$89}o@FZtmK|H%eDRB`DaOS<^acz4F z_9SRq4o)up(iW%v1s9KC%!uBS^W+~>fuH;6gAfhHh#+FS!-di=>XwqFHxnYbe)b;z zNh4h7e(_f_fy|2eXJAb=FCMaJc&6{s#NBQO7gF|0XSIROC znqEE%JAn^+M5TW`81D<}AzJEmJyKkK&^$ zt+R%3tBQ8b8z}XA?|1bx1Hbj5FlL+$L%iVqgOfg;5_vRa15C?4Cpnp6) zE4PWQNJ9I7eFI|kw*Sioyrrb&TMqu|dv8-tunc;=R0Uk9(h3krM(0n^g}WUuWD z&!q*VD>~M>12f47F3VEK{{?cjzVHhe1u0zV!au@D zDp>#1;i7id;SM6yM0GNU3hePvL!FX*ZRP~C02p}eL6vm*_1vf>Sn2L$Y+h&F_4fnj zmtC+OuOz#N1ePd*@mfGa!Rj!~1;@h#ARHJ5ep%s=3r-*ar zi3M=q_C4eDZs)~=(f&2mqnG6c?uNXXx}1B86(83F;_&r_>W6nz>v{`ozk?YM>;Qf` zfe*NJK%xKxEi$PJVH|{IJIKbq`5d;70@zThMX_U^rKu)C}f z>;1M>dgAtJ5@3{v#&_JA@Bs9SmBd%p;@Ewd(G;}4Daqhz>w~igbxYtkO_vxQC7lPR z<_6&z21vDB&+A|>(*F-!AdU2*RgDKK`zfRas7Ki1wn{*0~=Dx@1i){9~zDm^E z9KhmrgW9j$K}Vfr7C>)|vTK~<7hDbJ72lMgdCX!ueL$IedMu#$tCXa^Cn%^YSW&Q_x(1%!` z?Pwx8;LZCXoJbyGE{;A<)fff2kn^sXh)awB8XIl~Fq9+SPm>tsZgvwkN zlU}Y@!3+swO<4MyL@m2-_?4^@c<6@3sPMu|i-Q_5(QE8Bn8irLYju_GH*eYG9HD>} z#0(Kd$Py(l)DQ|7g4B6uTqw&HBA4FU#GIfA9DPU%wTtm{PkOS4cJWWxzS!fs^aI7Bxt+^EJ)lvNd)k z1+S*j;x}_8y4$?Mu@ZAuw=;PIWriZZE0Ab>O%vp7Z*{!702sciN{WNgB zQlVO_`ni~;!+&)tZN6QU5yUS_z69vHQfI?i49Vdu+`Q-N`h?W7n&q^xfcmVzZl1<= z{4As2?&ux&<{I#%rfhqy?Qp~=im8r=qz9L!fE^3Utvrp;S+i$a0AiIJcGD{7elA&B zKT-F2cC8Vggk6`o_WR;!Ln7)lC9abKqg4&x?Zq7e$f=r0C77F|-*C352xPU?{Vn|c z=v~ &MYCMb558$tHd)>sxg3>y2XbbAxCk2SO0&$$6#B+0T+By~?cwqDoMwA`*%r zPr&-kKiN0^-VC?tfP<`57(-Pec<-XZ{OGx^rXE(2^k=VlVJl4d-?P&Ck}7~=<4q>F zZF72%bX*(eec_PQu`UfXb3-$s>FMn>#FP%Pmr#ghPT2<c9NPIoZJ z6Q#Tu(z@1 zm{*y_kOO^mrC(&k0PEz_e47B-v=VSau*9Gg$|daGik0bR%q*Z*#+HxbWwESL#@0w$ z_yyKEqolud_q49~M|TiK`24aK*dQu@!GEb49$KMqCoesInVuaUv zm4hK+pa~ErP{Aeb+VNZeI~_M)JGY>oQK8MV(D(FeI$o(8UMnm6{QlzD4h6I{I@$g0 zIeuS>61xdER*f3*dqX0b>DWt%E#H`ROwyO*Lo3~ia+e-OkA$~>g*O!|9>Hz_OVVmW%eJZ6P*EqU{RCI{KPz@y?1chktWPz_fx z>jtz}vplRA=(;kTm{*CA#j4j$3#jW3RqCBrXo_8b>EQM=d!p@YjH&q}_M`wHB?Y&6 zH3_`~c|3G6D%M?h)D5%u;HP_J1H0BB0AFBJ>9QaP6R#pti1zj;)69 z!xslQL~^Q%2pZ1yy9!pzjp99e1rJ`Nk0*l@*N3SrHv$3xm*4y%HgCK~EF1vJi&uQbRRhHz2N;LFsNn$h^%Y)Ze9(Z7q)T9p zH}2`spKUEBhVO`pNGn4}G};&dvYbWUBX{Icqbk0`S}$k80P zhNN=K=jgD7>ZAVD>j%R{V{g2mjk{@KG0eey%;~%y#d{LC3hIy`X)6TAgeoDl>In1^ zeiymH<$sq2HLix!&4VqkPgH*qTDBplN>zow)Sfv_{N!ZN2)D)t!(q6y6v)FoZ5w)y z1=r@DsiFB(uRoEkwkyuZoue0;-c14fyYp-0TZbUmeEG{#QDCzx+7PbVu?BPtdsZds zpLYNUxi#p$8>^9}^2{HgNnMiTYTM_j?)uTTDh)QG#Jq0LhPXC^bU);TAN*4SgiPF1 znr+b=eBA;hvvXbLnguiQCV>~G&W@%=s{W?e$^P1)u5~;h^7KP^XFAB?yTiS0f(c?y z(>0Ar4o^Ld78b6yb8{WJn(Jy!+6js$Af}*)cC!?b5qJA+w;ekto+g2_hmmfp@ zt~_)IH6ruHZQ`)SRCX~j%fE29gKzqPkNv}5;O{e5iTjc*i<$F07vc|UYL(2_4r$@* z`Z0izJ&&c-#VgP)BwO6{;igJDu?_XiCW%p2`Xh(z&dwf z5C-ATT65%Z#RvAHCvJU27xsyiuh8`9*#(|{>9}Aa$U{3MJ;#E^gkZh-WCpR&Mril1 zE0Lvn_}HNq(a9SrGU7P?vdoTVSk7qgb^P`C;fEQ4g16K_)DiYt&_5CQM>>$P1^vTQ z!B3vh+USZU-rT(HrIx{I%DGO3nAnuFOPl#kH~wzF5B2+o23p}?p6OH6N6l&01~`gm9Xw8`9Q zWU@xvPY1!C4z`SEzc;4-{?oNz9_Wn*@?Czgg>0ao+r&4sGFM`_H!P|zWH>}ea?d&50es$=Ds!o;f6ayh4k?IA6TB# zB1URI+wLb8k$4LhdKxqFLr%Y!LhYsWbS;t9bB}4nwtUhwrB~Z_QbV<~9n}Ncq z0QoE9B^q)Yh`h+^IwWd0=H2h@$>~6q?Xa}@<@g!S>p)Ru)-er23m?n=t{#~IklU0Cfd!Z2*^1e@Q&l3Xbh|a|t57`h8EL#-DaN;Vop;pWl!Kp7C8Ae^CkuZ1KUCT=AFquWpJ$oC8uPeiZK+fS z`YefpBtvif2O7Ff3;}4Qr|JKJic-xZNO$mok&UYhF6(()c?I(e;|{(+_qkz+8RPmh z=-ethfI*^tNT6;`X>PXdRvciiQk%la7xbQnK%X{8PcA5rT-*!0?p?hlkj$(CXqLC7 z(+i1$y$Y0Z2vywWBVd)li>pwExg)8Vt%g|Do4-a(Wd_8L$nr}Cb3jDN(cySV~Bh`u-VIGkiFYB*k=%LPla?m zq+8BacJA$Ows)QRGJD_@J#5xF_4jYu*us&;dPdQ)cBa?EFeZ#zfVX{V2Q^+c8hFEs zx_J6X;nC!%LhGuks@60ey*D*vf!{~=Pn-o;S|4`YKnS%GUzQ>`+a}VyZo1;TDe@}Q zejIv=bWUT8vn0WFCzfi5l<((1)2Gz{DI=N_5D}6r;pG&927heGQNN&luCYI2t}u{4 z(b_sSa$^$Qa=DQ0a0?kgsCa1SdrlML;8Z?8Uh4i>%OB>Gbhqy5m-SS(ml+@Ms&^S+ zgG!7S$|NbEzh^!Wz+k`IMlzJfu%3^V23IUutNaIgs~Gq#$ALPv`{*?DuDJAmBiTR7 zO1NO};RQLoe(q^~f^N$U$xGk^S|+yEV6!H<&oGP+wAyYQxxLxdA0k93?1E4LiX=QR z(%s2iknI%-G@horjHGHl4Lm!Qf!)t@@kP7(XJo88+}>(@S|t1QT;u8{LJCPXj2~@G zL&!r4{9T$a)c?trKEIkdRvMQa0bqIETOP}3qIbh)brzr(AaN07djq+d2(wu%RmC>U zzIR$F9MwLg$r^FXGaOY%O602oyM+I;s)LQhhmS({(lfYPg`lFPw+Mq#l~v{jNg{M4 z=)xPt#iyxJOoJSypT30s`d;K9s4N@P!45YcSZz+}2V$A(fBKtD_<7Na6c>MITBtmG z7~HnjGp{DW_d1D?Vg8={nBydvXI^nFuW7XEs<6Z!mUYU?k|l$F+gyPxTUu03>I-}< z%(OJl-4EDyag1^YKuY7T^Sism^*xm3ufe+gQ)r!dRG!dk3i=eF4Kw zi;@DOhy9lH9hQk`OFU&SPm+R6%$l-fH%hypm>#ZAi9yMcGta+&vQXSn;ra~o*&=Y zML+)~^yYkmt(ZPa74=MCm87yrv61L-oLn@wk!|({8N3~o`~HaPT89BKFvP9=>IbU9 zB^;v`B0&@!$eH>D%hDLJcSp}7rJIU-uTdo*?eHb5rnc}1Z^%>r`3-eMhMCQc3Uf%0 zytOtsEi9-mek)}F4Y*vL4-Nc9$PWktK3}761vx?!=W zQqlI`gd{h#1BE<)d}8Lm_D=rNYb~%V7>1&UnTOt;{LA_6+WCUM#KDZQevZ()i&s$s z@A~>31z*MpI8wTq?bzwFMqt3JXs+dB*JkH6IQIfk+hcu2w6m#%JM@psNEbPB<*Y^< zKlrB~pWbu6m4{>7_vf-Z)JPwl(yXc2<*1YqB_pdUz~o!3I}I)TXpe?V@9wRkXls&r zaB_`M{QIF&(X=^;<3|}C$!B%{f-xQ7SBuRD`=0=MUUrUageB2`4M_$s2yDh{C3FbG z>j&+ed^v11bD}Ghi$9Er$9h&5#>=vEwiw|0gU9y;*XTh&$Oh>iff8Gt_KyOYoN zQ&`IW&v*W&w0~k=FT(-o6>rCD39H7+@2b?d;R6fj`W@7y$LU>drM=cwH#lqPVCKLj z&Mc7jxF}0@jy_N-tjO8PK{5MIIp-}IkFG(XwVL@ttZW!U7lyl37`rf@`8y5&<1%xi zxNKVK;N6rtZ8!QjMkqu0ow$*zoZM%6dLj(p(0wIxSrG~$cJ^m7?ipFQb1)a@eZ$4= zS0&~!r|S!Q%RLhK@LCh$x$s35^gg&|9<5i4M<+t0NwPohv8-@UD4E{gIfY%7%qkl^ zt^bzKW?Z1|lBq@2^4w;P`kY@KZxD@9#L+XtOSKvwyN3$puWTCuRSW5#hsSzTTyq1n zer;buB=s!`RdAZC9W{O~x~Y>9o}$qxa~>0aP=J{(I_4t%TSF($$}EhSiqk%5QTe;spyR7p-qWEC=29O&17ulA>AncXzD9q{|&ORMSvSgecyt z$KzHAWp`%1D)Z(@R+h1ifynaA%=Bl@kC~_DuYZ z{C%=HejIveU|qw6+=}xbkiM;0EP^Lx*4mTb=zz$!ujDUL9h~rsJ`vodCe6N(T_$rg zFx1wZu93>kjlF%)uas&0#QC|z9i4VpK~G5)o_oJDQFlUbk(e*PEcRrz2^;^;JYN2N zE*4W=@=gERze+u{A>Zg7XI>rMk896O6y-qV@n;6K2+(ED?X|p*jgx=p8*euLo#yPL ze1S<#4E3JQA#Is{;#v8(;=HL84q9JDP~x|{?P)PG`Am3726uLe5GIKuGj%i5&N0&s zEPV7Gn5Z8~N(SD?gwxOStl3r_>v|R13>E{7D0hWNyXJ-J$7hGjms#7FDeT)W84Z`8 zCMXA?4KvdWaO+d$8NoI&m;y0pM)ba-UW1L*v!6Evi5rY{af=K>;2ySzA6KFoJJv}a- zPU{6rF1EOCJnyO)z(#A28`>4(SJ%vYQBiL*PQPIjbhA(Lo`S>I4X10Wn}p`VWrS0M z&eC-G25ye^-}4RE)C4#Q>AhF9KOww(_7oT~oGZmvhHT$>+-)1{PVuqkhF#xEA2F?@ zygLeaD@0AgZ`Rln!?0eg#KO~h2*XbV6gz6Jfp>|jtdUaYw9T{*rU)L+UT^z`Mn|tW z2E963kE|pAVQz!0ls?r=#p`18qe2SYt?b^vY{4HCf8CuGIgMNV@og5fiq?sKAAOAY z2Qm9ma`;~KhA={t2wfA4N6t?X>wnnq({bhfk){zU|0A}~q1r^stuT*wq!n*f+kZ{h zwf3Cy2Qb0I+$Kg*WJXu)nvE%eG@6D2x?O>nq@?=|C(s(3NQs7a9j^e+E?m9~8 zU?WcpuL&K7-t1sRs1nHv;B);80x=1InFeMYgwt0uYEH%-cszT3S%1??Wh8vX_NTC# zYa%b1Mu-UTfLGr^m}Lt6u|f}%3o9k0Prn5FD_>sDCo<&w&rA(Te%;tNS~M4QWtZ-Q zb=G%w=LOqMH~sV5Tf8wR;MSyQt7y_O^~Y<|3v*_c*)Vv$axhCcvi0JkjC=(85-ufV z03x0b_i}v58Aye#*D&By=~PKXc_c4ZHn}VG@*X3$$y+sc)O$K14}vSL&!Cv#~Lb{!)YsF zP2`a>chA)k?4Jl$WRoWDH0D8MDhF1D>Z1lZHHDA;?a*roIU+j5>npr%UR2NhyzU{C<`^iC&mxs@S*a0+u1}oN)Va?ZsfT$XQvzXVJ;@mx= z2@9&5)lV{Bl$khQ6CZtx?mi6bY*>wjkp0f7E-Z5E07vv$Ia(!`R@*(&4GQvC3iaq; znoHKJkoZ0p=yikXad80P4xGAThRgOYWOT+V36!c8yDtPpcktAu%6=62OUxaKXY}N9 zc$7@`n=K6eh8aIa5+cxy`*b|K%)f0)&;tmo{R7$6gD|X!=I`cpf9VfdkJhw*IqL{- zhFW-f>VOEVbglsq(aUInr0Y3s)!tG&3%Rf1p7Y6A!A{o;8t<9DPxDx@uQKKhVnck~ z>U?|MtGDJFNopEEk`-dFqFk`cTKa_Kl%hfD$cL{-OLrkoP5liYyH;;kI951%lC>qy zl_8`rQH}JpBrra!w}$=ttf-QFIUQo?X4=ZVirgJ(e(=-8(&1#B*{?+HN1zu$HMRu% zaE$c2>)$erzN_b)#4$4$wrlG{@_e$(qy4{Cl$TVZNOvY@DPF3|;Jy zz?X&_J*X7KOE;b^=&5rm>Krt&uEbIOyLX)aI)x3ywD|oJE4Y&qi@XN8i_n{`BpK8! z*jnzLGIGNG^+nJ3bUQ6*JRdjpe@fLRY=im5pX=~m^EJTJcX>rYY5mazv2Z`tmtRMn zUpu!+j!VrkG!FQ<1UdQ&N2{d^=N9o&EH{Ec5cVd#U6k8}Sm=xdJW#W_x#Mb*uw3ck zbq$=aZrC9F$i(Hv;E#yJzs!Fr_hqYg0#UU9IYAnxShm$PqXagaHF+^CX{S;SdLrk* zuMjohqfK5FB8E-51~>1 zrGzQ4G&xoLa?QHICAwiZ?>4zB+u&xF^=L7&*6m1dwywUJdOwkZml+ffIx+x}r170` z(AUVgD?Wl*-mT(5>?nE9oB86NIEQfS*n^R@0vVI1N*ShaWFKXMu*rz=t}7NIia>)~ z9iV4fB0BWg2~Srdbo>i6JHV|i7tc_|3k4y`RJ_)fX%AfD`ZhmYoqTF=VLrcCOyuuX zkWKJky}R>&E*HH>Xf}V)&mEiwnv*?Vv|H%t>&hz}6qCL>)AqgNmV8hEE+_{Gz? zVu1A1`LjuA^!^s^`bC|Az=w(K542HCo(ne@6DKHtKxl~UxK$>S0&xiMt`F;7utNov z{TeR)eXh}W9+e#THe9GZLB25Ko?~;XU);iS==1s?AP^2v2A>Aa{I!(kVTYS-cby}{ zlsvxJSXO`YDhcv(3EWoA)ol?_Ps*3)H=_n?_&qX>VOPf3gF=}W5wclW<&yB`70!Iq z7I;C9>ozPS)tUAFj*Sgx7+*!ufPo}0*Gvt59Lp09VVZYmSz$n<#%Bdt&CjyX#;bPA zBX{^3=VZmeHBBm}6t#t)*?}lQ)V^9Nad^On?Qh7o0fOUg&j_@lS^dCGV1?Ckrcnt!V!=ZBdbG{)=?$ zaT;*#_f}pd&#G|EH~Kzy*NGJPb?j+FATH!S&EjR~>C%GESNFE0t4t&T!%nY2weE7-)|*LxuAhGm(`S+$ALKj; zyts^hbsU}Wc{h$J+s-Alp!GW(Db$h%kxDw&@U)e=y)g1 z)ji_bnsXLTU#lBJPAFQD2|GOTFtBcG%Q9+jZxPup{&~UqCyjChV%5wy-()bHb4fuA z!W&=@dqp(QZ1J1L{R2(q>hG7`-)8KO6(gmzb*UD%4s@JuwjBIo6AkM32FlDo6?iWo zJGr!6*P+bqCoElhpxCKocOe>8x;iYl8l0eLxgM?=TK&{%Ebw3ygwS30U=+ASU4h^Z zxRk^y{}68bSiA+&eJ3ZfK~412#BQpp`&>0&0GYTO_!HCTPun?X$c0X9X|H|s>Wz*6 zrPV*F#djtt@hhhjowxPT$qSo@3x3I*U`7gwLEn}>eBO^AeHn^A%ChUoZe1wb4w4$d z`Wfyyw%60aP5{p0^B`@bNv``MGUwA}QTWQRlB9qKf|PPyU_Wk-%a0HSxP9MSWW2{8 zFJOB!qj$=`x@Rrqb>#mV*s~B5%#^cm#HOl=Y8z4BA=_GILvUf0?N3XH54|f~o6UXg z7U8-3bi$0^ogP~)vY|6=(3u9q`FRz8IQKY3o{fbl8ip%YSbuQcj5npf8{11;SsG5Y z7GZN*0bFADLLW^aVC4(!O(@!`1-IjWX<}*U@8xp8DjCndKKS=xokvu@y80bd-~b`{ z#SMiw;7O2uE1Ku=GRQv|_ubC*mG*KP4})#d(~-|i{5BMn@8p;dP>p~u3*fTTAe|SN zkv&!>W-GjSwO{UL3Ijhci@d(HM-KUlOmI7}t4e+%$7zP$V(dsQ}gUEU} zFwxp7^9a^%&}fhi?raTikJ$Q`?|zu0`C90mWK_>Pp|6C_aD+60v!^X49OK~X)#zc! zEXvEI!*XJN>jp8~2JwR)plb}jZ4SeZ#{r?F#aL9l%un|K2s3^xuMF;`hcQi?w5$;o zEu0op7dsk~g4i%#Q$3oge{3&h3E(D?bV%4Tr3%p+#**cM1FnKu9rve%GaQ=KoTR_H zosCk1>PGo>q!epu<8S%af4jh$ch|(MvJ_4&4!jK>3Mx_@atLwrmQFe;)PB50Q{j^A zNEh~hYFrchTcOkl1)?QODKMQW`LuOt{m7qYZ!xasutp~FLH_Q}M)r)VqDk}2P#16< z9#eK3P`Y(q>)?aCUB508Vw;U60Xe8Q=c9m6~J$Mtz{0yw7j^ zU+leiTvOZDHX1}hrAhBas!EfN5QwNW5fSM%(xgcfkxmcQi07?ATKIgpmdtdjycklP!^WEPq`w!rk#ab(C%{k_rV~+8R=i%H+2H-Rua5Cpc zNU39rbFJgYO}WJ8RD80xFpfc5dobja3~jdB%CMF=-!$c@t|9&<$m!6FtFU_B#8Lk(9E`Z{-V}o?EG=;VMiG@`9WRc zN(@r4!K<3AS7>*!lIfL;uw|k}-9-@bph_>%LxYGz1+7*B698k#^y+_9xi1AH=bQF< z(XOg}d5*j1w;@`4<6lEGlWJ%aLW#SN4LiH7^VMv3t)@?{oC+m;<+N+bTE1lxf1r0X8jL+J^@yLW7Or=tschC=DM=y^aTdDjo zM|%3c4l?Aqg8z84;!UFK5XZctJG`oy%kMJQ8^dW_i&3d`@y_2o`oyX`dXRcndgE+s zxz<}$A*~!754ev>|8O78s5*v1W-nlkvIYSM_q=_im7}M`^fZuD=secx1$jFQe8@1$ zeF75Y5o;xu1wA4S0eC~GwuTii8AdvZYSw)#lUzF_#Sm{XCWys;m3s?KurX>IX!iV2 zN5vI*L161TuX{jW3uRt}XT54=dXhZ}$8G18j!%cq`Lp#vk^uJVpFw3qFE$Vz%{y&s1`6D`i`sEhdLs6FXu`!DI zbm@-ApFQL5*B(Eg%+4gfV0=wL$bI6~A>whFOjpYuz*XS{C}@LDeu4-zuvqxP4Xir= z`7?mw%5r`^fOrT{0`~lR^zYODZnyt1nZGUM7hCwdLH=%#zbDmyt|$MO#sVS>N9|EI z>t)`(+BsHpWSklfUUTC2eM1+{B+|zr`=R2qz_pvtZ*^-?0A-^;K_}-;ej~;^;JM8z z`3IUfu%F+5=NS;Atq80pM~Q%=TMa`)t$u>KuK|G9F?=3u%?XNQocIaCM4T8`ztE&I z#PAoAgl8J{7eHrdxP#7%@+4k(qsNv8(n3KagvJ?W5{>+U>IkC^tVf4yWZK^8C1H~n zS=P;q>snYR7o-6p6sYcO^9Lx{nR0&pPQlK@pP&#J4NlPd6dn#1E?lp1TYRyPydN*} zkYrV`%KD(M#GkgUSqLK>npNZlQ>z<&cJOXrlrM-sUUd+r)FR-Go^EIY=NW)x_xOdwDJFpJNfZ>({X#|063x@6DL?h>_5O|7WK;-a@ zlOP6F!2167C6?wIsC4dCUCmqPllf=)UA9~(>_RWgyxT9|JYgZ3NK+JG`{4^uWC3pR3*Ui`Ch7#Siyj*XyprRWw8Vp=Sn`WvwK{yAjT?^P&LUBCD zEmKo6_^@7BmD5ykewuOl`=CF;rzmwa1BApRx3qB!Z=ZNZ1lPW#C{}c2L*@6`<{|Q>8p9h#FMWY(Y zylObazL!;bFZC(8)2gsh<}pRxWdHKkH1FR218cLq$Lgn*`4p&Qa{ZuURiZoEzETfU zwZ7;2>-_GHbia%PzkL+^BA^nS5_V+p`XDvke3w~l>fSItM`@LXYTZITjM0w`n>Vj< zwa}}fgAwTj2MzJw>&!hM-%Nb$-pc#5Ocv)JE0?xCyR}r@*2wd)zC(*NOpoKc>&IL? zeVNZs&|i7Wz2)lauI0{`N%7$Qfi@b+$6p7$h;A>vow$4$i3o(SlvI_MOk+iLO&&K? z2v4Soh-;{bFUIQ8=?sWfHbkpKQaNOTuo~oxY${Y#q{4Msn$Y1*onfG){7b9*7 z4c3AvmoWF4W2DtTkG?&rz<{aR-`Ozfw^=MKSG-vNh!?3=2>x>`KUwThq{gU5?Jf=D z`0`9Qj@?wAdX-w*n_1~!HVrvH&p@o0tKZ#%?pT0?l%||@1~85uOj)0eXxR(7Q57dn zoqnq%cZ?M;6!al& zg^MOJN^jh~aO*9r7ccRy4%-ORQK4v4Iz0}8icpvPe3`nTqDjtSdn+lmxu@k9Tl(Fc zDyXf4FO2{Y@fBy2Ex5bp?7&*%!HJ`%BHTO8{|n7y9092=hwdLieW|bjWaB63&ISZ~ zgA*5isP&i3s+tbwXxXy5)qKQ>q44q~gp9(_x{wpv4fwCa{rAh#vcomPSQl()(tiuG zz=GbzlNA8tv;ejz@B{M8+M)WphcWmvs{J2tJ^|~LLd~5r0;9X_(NEBlRuSw^?J}_- z=gfruCkSG53?!`HICiugh~xk(Rn|{XFI@M}J62ous78(exe$;tTvMhh7^Ym0P}4 zrs$q5hMQV^*E(;@1U6V%_E$e+05JFcSb4$%=c&u*vaL$V&VJha;)VQa$p+IW91!%` z)ttD+P3>0gs2r6XO`Rb70-*B9KvO{n;(IMS0uNMP-3V9)PS(I#&Fb z(CMNbK*o42yK(a&P$LYmjfEB9u8nwX`o=QaUx|!tlG5--ciwYq`rIvcgQKPM8gUN1 zi$GI@;cE#N@n~RbRPvfz1|K52f*{Y@ekVfz^O5 zN+#`IvW`Kjpwp_3lt*8G%n9Duk(Fic>w-xEs%-qs)Z2??ReC&;G{T8TU04;HpDl;D&Ul!O}e@1P-V$<-+f_F7FGs|+%)f_TBCx5RDPRp2+P!=R{h&hixfDeg!;n!>ha};T z4?jELmQ)D(pS^2=Siy-73W=W)F`e7ts(L7zx@X(+D~SOA;F z+2%`^&*L3>%s#2J@PGbP7qLOj9cV<>Igk~|6`vNU9Kht~foU#2qsQrD@$18#jk zoKfCz-sdmxpAiu@Ufrf449szWwa%0_=cxU3oLn5KItE$w3BBlp?>YGFgDHViz0MfZ z!sz!|kq+eNl=?{CF81`mX>pXmuJotH*s_|;X&%I8QVnn1Xv(Z(_!Qax(LZv9{wxo(Z#AWGqwBw&+xeq>&%fgs{dxev zRUfC^f&*A%?ntd9{+G{^M3w(g0{O3E6r?|ge;-CWaY5uktf@|90T25pXxtHw=SyjJ z{Qa>O>VC+qJuE!H_H=Q93in2W>U19nKd8l@et!z5cWQKBjBJTau6M)g9N824**33u zL?xarKVnan37zd+WuixqZ^a3#wo}Encb3<%n0PBU9}QK^ZVxrfjkh?kbk+7m|3)~z zHNHSrnoGjB}uPEk!HKA?q5eD&is`1g!Dwr44TVkYd!UGr5i9_Ywu@kXo7W7mrBuTN!nFb z)k&2{DMbk_67NjY=2RJ^Dc;#;1aYnmo&hicN6i(-$C^m_I<8hMN zun)4s6~7mnmv19b!B>t3ZE=!Vqk@1wD7hl97knY6*iv9zC?qe6VOZjW^}Y8u$`0=s zA(dK59fEqA!L=v|?meV)_l#VI5S%|QO_oYosNy&q#lMAjF7w419Qtj1v@oGibfCw` zs$K7~wJYdPJdT8U&*3<+f}UutqwZLhK*&h7hm6{h0kP%btC^pk`x2(#o|xG@Dh$j?+CklhuRmh;<#l_qtK_sc4% zM_q}M2UsP~#}FR@eVH(a8NqM<1mOi!>Tky9W^lX+V7xB>^7!S6M9%_PMKKS&Ns)q> zdz__`mN#s#{}O-~(HXmZU6sIyq7-BEah_NUOb2RqD)yq+6m-~D_{s@aL(+!K6IFD$ z_cM+d_J^|c>w`Z**BPK^KyBTQ?07Vx6Ur?4qggA6L;kvAvabjIPRz)2u9hI>4_4<7 zW;fUsc$qd1w*Wr&>kL}|xCT5XYx~eO-#8=f2am_(CM;RkbF~VCH8q#H(KGunl#H55 z6JPJt)z-4hx6?leE$j>Ehwu5ofR5b(_TTw-j!A%kCgWNPA`&ccrtBwk4j^NR)vhvA zw&L6n1s`f|kN<~DgiDpqkB@UE7#n4h3^B+I_mBxI34JqtT-fR$OSsKi=z z$s}AnKlgn0Y~V!hfF_Q_SN5@3UrEl5=Q)?@U#z?tASAHO{_Qyz>_>9eM=x8hWRH0lr;|;=Hht+ETew^_j1Js?E+Rdf@Aa?Uttl zM}w|#V5N0{zAA44&nRqU~p(`Jx*{87Bh7dH9db z+_mknDcbgCg}o^Bdc9dKoCUx7n^^s$y2Y10eC~7fb&D>OW2*}Won%@_#v>PizstwD z3^h7SmdvH>&3Z}36>*&AY`3JxwOS4`=hJ;xtV)h2_&c=-*ZX}njre#uguIwKqfLY2 z&_rj|Ah+0Eet&J)S-R5Edb@BRs2_kt0~o_jc*xK^pxr9%JE`xHUM(}cq@E;8cmkq+ zt#arA+U`|QhtQ92ivlVvk%~94QfL>`a%}B_FvJk^wSl~5jKSE?A@bZn2)Mgd|3;mN zQQ-N&Ob;n+wK*kBBf)JY^<8P{u^FNmVvV*HH%#Nd`mOy=G(E&)$ZFUT5m>@aNU~5^}aFyDX#8q|3 zoDN?TAhceC3{76Na9m^;Kb=*GC4+vF2E3<4NNs;RE{J;Q{iqnd7v zU3%c+bTu*MQSMbmOMaCt_6V|@Cn}c)eXs?KeA-$U0TlupM+KUi+VxHMeMNRe`>3mj z>$IjO7zS?2erLV$<)KSrTi(Ek{_@hx^71n=BQH->ZQC4Mz{u&>REnd*{DGsCXF{2( zWMa`u+Bo^;54!Qa%3K~&OZA@Hb(o!z&f>CJ2aLJ#2N{LnscvB;_$R2CRaYF-JwMf? zUbcD!#f%45!_H$Hj-0TO1*M_M3--p2WJmH>OxYtyOhV+dWA4oas&VbzE*=B$ZtyqS zn=Kf53;+Z}eNOdD?%iGSCQfgcew0f)HciT8JmT+T7(6cUWi7-x*SaIJb84k zWY(#%V2M(uqK+!&(t|_(=GD=w*x44=$7|+B0_~$!{43YTL}do9)ZDKbTs%%yp9WO9 zVt$+)Vj>svgK;{TSd>5qXBbT+oB~VxXr$Egvx?AL^;IPfIzaTf8;~i)hFgl?)EWnL z7`}c0$bgzf@o8XtF&5Rxsy8g1J8coGeTtS@TSm7%euC^3jGG479USsh85?sdE1uWP zM#JMU4-I0INQudn1^2#{APYI{+heOE9;;WM_3GG{>ZnWA?Zda?03K1~=7Ky{A-+n# zVstPomIM0EgUqtoTy_#acjRWe+YX=NS&+`c+!+G=R2uUsb2On6hEL^gs?u(};|n;#N+zpdEM@yDL%rFxx^2Q|JZ0VU+OJwzRn^wE#ek9Z-%6chfR81O`eFDK|{A* zF?Mirn&2K`>lOyZ`&GW}0Bn5vveUu5@#-u0N`^1YOJ4$sxzx+8G;RsGnRma<$;%UQ z4tJ>Cn?4KRF77Cn=oubB7A=Qm7Bt*?sFn26)!t0~tZZXOG;0sKErG5WNA31#>a;b} z*FvmDImjYeUohVgY3;nPa6UEBzZ_a|dI2Vts^#B@Z zo~~Kmg#{AG*F3hBJ4y2Kfu&`+4fVVD#0$PYEG6d)9wpw#^{G6zhnDD!jqR2vGd~{O zcVJ>m|6ZtH#_`%#Coy-?T)SG)lfODTEj@i^Xb@m|aM4D4h95#NJ8V|$tJNiqnYUIw z(2d`6i{GGdKRnjj9z;=qu`Rc;ZK$>tJA&M&2p2I`60dmI9ySVem9Y3RQf^SZN-~Y>CO`t!zH=+d%Z3_N$pO1!#&}v;a)+CdPIu|0mbcqUZr{j+$IB_2lBS< zq6z`Tw)^IRbY~cx`o-?H8QEho$#32XcQo#De+jV;PaF+>^t?oNF^fAD-GQ=w6+nUI z??=sbG)da~P-fWJWs0kd4eUu)FeK=ES{lX9T6L4&zTkuS*EeuZ<`aAZ-Vvb#8UWbc z4*qR55O*G0xQ^pGN-$HiNtqo!-9Y}BPD@jwD~fDzXRffm|d=5Juru$FB}| z!=Y4J0DZ@9NbRwEkGs^8j3-O?q&BL(XJ6>Kq*%G?BYLAfby>uy@d#lMvOjW=b0+x{ zG^8~gsHlifh1ud=j(o=nSJzUUvo7=mHr_3YhALN@wfifok2BtkQyJm7a}oXg+guvbs*Iz04P05>>WQElQPpScJO>__KrzMuyUU2!CT$eBSKI4US6C|JU>sM zKZOG#Z`aW+gkYZ@Jgyc%2>>~LKqKHMD03FT48VkexJ?(;YYaj^dG>)~f~f#~KXacb zT4JyLmQ6@)=Q8V$hg9qL-wv@#@J5y3)p%(S5u>}mzH$zMNe2bPlN`pLow)oH8Khg@ zlsv0*dLIoWB9q?&Xd~tm(~{n{Z;2MYJV7_Ks!Y8zJX2Zb3@TM-J0X)ZO`$eWh|Z zK3-?0T2l_l1hT2WwjL+C9S%f=)?`XxbNw)an5JunlzeXUp1?r@>XvGf&Rgib?Q-7W z%#W>7h3O%1bf2wdCxO3sd;|XH4++2YTc;P``Mk6RZ~U_vt;qLHJ||pakzv1_K(%sX z=BTvD!DYok=J|{?XrSz?tDFaa3y?YfOBS{Gvf``{rY=JJe8oKx=%k@9-_&lgQ5$QO zI?@;m2hTkm`|_MeT)I`u52zA+^%r`H>@}u1`>g%9TPD`!3%Kk^>{Zd^ilXnmz2$RD<1QN@1zoBuInyd%}li$!|kl#IW@@Zc5R`cH6ut^AP^`BjC6qy=- z_5FR+#FLuE1jQ8J%B4<$B8*?V_;-B;In)BI2#9=zze8!AoIr3y@FcN8 z$yP>hyHI3qp$rJo?IK4MC3&q zAqzHG13~}*$pYCf+t8op|Am(0+(?qBIP3WPD}Ni}zcY!y8}?6@n7_^EKdlgdo6p~~ z&mZ|={|^}?2BYwD7hGCPaLdlspP-Lt5vMJ`EJ=bR1ad+jK>Kcw5m3d{L>4(1$fUR+ z!Jl_HXlcF2_U?F|4>t*Uu5xjeemoH6XC`;Bp)Sauf&Z{?YIE=!RpP7_)%LAW#OGa+ zisGX27hz$4qhk*`ZD=06Rp~d+{Lf_Eq0#`cEFydrLlsM)_PgB->`$*?dGzdscdUub zcklg>F|{9I&ph|YrS>`LY*>coT{NPn9te|jhR@M7T8ZQ>`6;5S`cT`_(#W_$&-|UY zx=pqUdNvl$`7gh5yUzwHe#mYHJp9lmtkqJq`d6(5LkZ!Z0cTscUFAyYi!bgZQ$0MqO^&}s?^2Vf7UXMFm$W|I+@7D=e zR7$!6>4tx{<(do22of)M-0qohxysS8LY0JfGO* zy#bLLh|^Nr^ugQ}umWSJhD*qoVU4nB`-+XNHy>hH)s_v3znq*rND!lr(Qpd*;@Af0 zGQ%T`ciR!cjL4Qy%h6=r&voT$Wd~TlHfO~tXWo6o_)qGrl8$YCvWul4e=}u2Jq*v{ z7N7`+KnENAcshC@3S@WgWA19^4iZQ9H}rc;u5B%x@%kdwYt;zGWe=G$NYsuw!{BUS zK@3%=Tv)JW`6%FvC`iwU@{V{!LMu$0QtP6fEm_lfBfXGDOxw>$KylZIC$AyW8kNo- zdU2|aSDTUE`(C}vkbcg}rEq%9$8i=pInCAIz893W92>oUB|a|gCMlOMB)HKA1%JcA z{0S2lTz&CSlk>5bIN6)ZP*CC%C8ET{SNi%yz%NkHHR6xi%`*6`X6a2RWwQv5A3giw z1Y|~Lgf_pOW;L5bB8#pA9=QZzU!o#i5%cWKG#A|YbtL(l<8EBDYKmocP$q-wH zt#P`nLz3^7wO(P4ocNj}N?s9^m3LcZZDDpZ?jk9dQ6;`0;K~M!%FhC$sy=GdgkF8M za>ap>`ks4BZ_xZ}eXfLJ*H^(8Y@U2+rI#c+5T@UM0jZYhF!FGcz9d|2C@K7OU1+OO zNjUOjv>SM6xwG*3!P9)Gj%ZZZ62~| zCF^-S$l4>stwyqUdXHW^%@%ARkAff#P;-%B+dSMYLl0q|E}!h_&%=j;D%JHN!Z|cm z34%1_&iR*kZN7gn^0WaA_V#ykD!@HQGPV(zFcinH57I>qF#(9&*D^<^^pWOd5?s^8 z;JgIBIK<$xi?~zURFFg`?jAl{l0xI?C8o9$76wInGN#yMzG?! zOBq8%TKXJK7@ecA`B62&Tl3?|x9Zf~$_mW+8j%#K&V5KSO@P}nYqrZ=*bgyOCadLQV z0-JLH3{-^O?e;9rUqea?D|8NirE{g%eLgU7rzpng4e{IC>>l)(!LV%sjPpvXSNH0? zbG6I-nBE8HfEkC={7DnI?0WEO@7>QmE6nmvgFdURu;^J%?AiR;PY^5CoFr1C=7-C{ z1h434(;i#?uFs}LiADzGbWwq>cEreHdEGI|Xv%MMn+Bikk6J^-r|*}mTw0U4Ma*C2 zxSx8II*en0SJei2v>^F=XK}orzpadH<5)unswe)sZg*Rp#Qptb^$U<zED zRoFab+nCAJcfnk}M3zLBN?l&~*lj5cS@+Q%HhF%vUE?Q+(F-gu+*~Z3lZayuHYRpb3PP28sn#o zweVeR31y+^t}d}3!AGp#sgHkg*6+BMtNgjh_omI7ObNYTa*8%ji((~I_ z(GF%43P4bdpM$#`ec;O`5YM;wrTuBIe9(zsLAU!@8O{P2ap*8qSa<;ctdVpMY3SBc zqwfnh*84n!E1fsbpU!_H&HWA)#p&S-8gHTDodBQWPHDFJhJm8or^fnE5xw5yG^QpO z!3~BBWc%QcuEY#_kMiCx#`kYPtEpoAh!vVkF|{awU_2On)lJB?xtbxzrLf0(IK9Bd zB1CUNb6TR%!!#z~F{7WZA#@HHw6{*u(CcGmA4YU?zicjMx!)Z$A>HEHKA!+Pl=Boubx5K8SO+@bDN zFj!zRVP@W%!|m&MUAKXUQpfkITM#Kga9O#A_yE}8+ct(dkSNSflmaBBz1j-rR>c9TG03? z2WSjuwjfGwvN0=*-oP5@CoWOtM^-nBao1gZ(EBF0B5(q zuyCU8m^K}{PCeC5^@Y88->>M>S4DYz5kc0g448Bd2qf6jdBGN@z*VO{&rqd8UTevYU?VN~p zI?>qg`#FYj*^-^vd*X|dfMg11S1N=CSk6V;{W-O~N80rnJmr#dR*2{fJiAg@Z@%w` zBs4op@4llyZ~cw5Oxuv-21e!8Je*=9Koq07VUJXab>aK*qw~WQo3_ZxGxE2s^B{FF zNQ-{23R0EdHK=-@L+TrWWRtO(>V-s?tIKxw55DRReod*+-4BWu%yGBoFRTPA_GULf z!_;mop#j~ZIihWV-rI~XrWzF)UXn9iVqtAkTvZj<%dD>d>izDWx-W@kg68-_KO59G z9Zq#rk#?gTC-dgg${5Seg{Fw!Pn^&EB{=LN?Prx>H${blNkN>}+U6pPl6D;nJz)gq zeh1~+$SNZbe^y;1Vw2hGhU+PljCS1jLWZ9_SGwb4S>}aU7=(ubLdo(dsnCqmkL3#m zyCTcixs*SBs!(cPab`-iXXaMwUQtk?0Qo2;maX~h%_xQyOl=6-fRidy?Gr30It}OO zQZG$$TRZCn$w&M^3^l-z0w{p1@q$-zH;X_}?(mB~MLwvPi>`+B9Pjwqn+zP+V-wdX z%d11TDSU0lx5;4hLt!#4R|w)*xz)C=UCWB$s)8M>(Q4uQCV}8LIT05w3&e+OGrjB{ z)_C$XQ1N|svseq@oAG$@e}&NF%(3!?00UfZ;pZP*qr!*RpIHSY%phB{hNU3>@$e^0 zrv{mRPXKijKD4h6n!P5^RaThBz>R=`lXgSEr({U2xh9bq5Vj58IJn?`c(qFMr^r+`ABS5oPEJj+su<)8hsF zpmzpcN$_es;Qu*rQZ;kq6i59a7-oG^KxoIsjpEEvY`U^YA@9qZ#mk}663pi=zO#PY zTegon?%9SJVZ#~Q5fK?Ab!e(L9)hDl$o7UiRXNv zzo@cb4NSwUqd@P&&BjKfb&CT3)N9iX)D`N|yGeZpfbQGuCM{@KmE zXw_{%3^X!>O|GYHC{(7IudX6#gF>0FC88TS=I9$1{=_8QO7X?8N|0GWs)GZ z@wX{7;af>}WB<{xBor_ELS9`b^s!Rgc}};8YUp`b8yKg$sGv2^5uWR4&g3Mc2CzYG zdq_9NxK#I^=6z3q@acjBOlazOL#N_L4Q3BO+RAkQwjcc=pa5%06iCLL1F}_`R=<1( z`IymZ-@fqM&wr>{2>N{TXgRS0E+D)k3jSAmjI$BL zHP)CX^pr@?hNJE{suD-7sZ){HC zx1X6fa4h`LPdn3xC}q~`W;!QM1>U&YB2|88YTuyLPZF(?ilRcQqQXM6gSK@#S}r@!*J!FQChbj&WLYq& zn?vGy-#oBJu)C^l9xDw?=J?{XpP|kSnfCpv_r=l{UrLN2yxn&9Uq;Vcy}Z@)(f=Cp z{%SXDj}c$qvZW6s#YX4{JzJ<7g^M@fm7+m7cN9|x7J>Q^nz*2O&DJHAFS;l-@-eKz z!(q5pRV$5lxViUcr)NThUt8$BUq`-T^(utXkJKMfsjR6*??3#JddJL%+E!uIZP%kR z{+($L6M2KNp=Wm~{9Vl!n`I!_@yNsk&OV8aJ&OCWom*3ng}bvMpGib%IHAt2Sd3Wl z#E}=7F9-5Ery@%TNa&su0Z9HK(pi6k9@ZotbSHl_w5xae7@K#yrbho}&v|ODc2&Cj z^wg?Pia_*Ei|V?$5$sx);(#;pw)y({OP1JeH}nnP2^!mx130tkZBydq{>lfjKC4;C zEs0$NoWprY4QYE_Hmmt!`>asJ9k~j=?u3o}2{B%SQ58vBqsu}4ag?{1H-mSTqRGN9 z2W?y=WefC~Kl?_yglLO&AqD(hg}FdLc-na^fYmFfqc(X}dnCWEqAF&2xjsS3`>8;U zs5^VF1(&tRq-Fkj%jOAuB3LTh4nn?j$Vmn8?WBs*Y_i0Zl_GN8%*G;EL{bOBvv2d}`q=;tziIVL)6u*RU0MaaYaa?fV3TSzED9{_SwM!Z7C4i4P;soY z(Kyrh^Uo8}zkL!b#8g4g>bUBpsyhPKIlCD!p7J$0cQAXxVV18xMbPn$W@GoQD!kb1 zAzF*LuT*Jzffg-sl*$1Ort3a7Ti>V6jg`Tl(sJYk#nY^~;(O?=r&{&Cb>~?xhmx?? zDmDSE+t4Y-hvma9Hlj=u_BHEHP9Kp*k#>uZ3a`}G2XzI(&qpZo`5AIf5I8XT zp^}3#nm=~JPDN5Zt=!y&2c!0>5@=;JZc(R&Jdct{1nnVfy8sUPhxiIbs%byP>!nln z#<1`#xJixK*mHHhMqc9%S4E>J3ytRXFR96C<;1&F#Tq6P#>hRo3;`x<5As~!V9na{ zifXlm>LA&KtFJF+-HEb_da)3w$c`1nn6yIA14Q=Behxpj{WuriG%A-lM0*y=A@7zT zH)JYire;ls_$QV-#d#k@OvUF+=sq#X!|pCHh6L~j48rOCH0FC(okY)Q&4T0$oshHg z9rTf*85Hx9@w9s-?};MP>zD-AImui{cv+a?+@M;UN#5?hN(?vAz`Z|4xG!cf*0sk;|` zs?oF@*KSJMnLV1dZ67-OK*O)c7oT$tc)nS4UDcRpHkc&~n?m!_A*_xo+O*;6ejxN>`z=@C$RT z#Ta(5O&*+5lEbTx@%opoxlgL;gr~B5HM>LowP1rm$fwna12X6pZg( zTpKndAEtOXEfCm9%MeoRWhs35ivkbSw@`{qxmG!7d$+>b*qYd}sw?)rAF9W4y(MQbH;}!o}`IYNTPOyKz5xJn_YlcLfwUt}AM{5Z?e|PcN+w zMbdBEjS};CktvnolI{s7CvHQ_+upKzpy%Ge!rXiVpV3T$T{KnX!+5@ubTZL>PM*xj zpsmi^pz?i144OvtP1=sQ7iJwzidrziZuUSZtJ6I@UuJNRfg7TAjJ#$Q?)WQ;k(o|b z+(-_uT>fy8HNvg654Hs?#{7tR0C0jGYdP5Uh8j&68m{XCu;Mp2T}ZDyvVeUiI-F0<^WT-6ys|`!C_)+od4CpEGSywy?|g)AHsJ5#b%` zoCH8SOzvifAaNTIx1cs2In(;|j3(cO8Ietm;TQet2`m2hcL@AJ7f~_X1Fa3@pHa636a--lq#X(_ zU4SxKM+-~pMFij~tj%66AAOLgHd7F(O~W*mOv&Tw)w(;@pmo{r99Cf7$-7Y-=n3Mr zQ^gYZ$W+H`*@-gbH&yh$1W$`d+-8|01>Y*cLICP#FyF#0@Qlg5?~+r3HNDTKO-xkT z!gvq^`5A}%RNJ>o^S4egR2`7&XD{~#v)f!m!@xRp#3DzG=ld-b<(`s#qE&d={|fqi zd~mLcs-uO@&tw!#HhDMsrJv@3uc zO&M9Ru~%~FwaY9p2EXW=yN79c)7_M1 zoco}{+-N<)sH)bj^ET`t$C0OiM>z2Ik^vHW1!gxCERMT4)_m2_t5U0e#DksR-L8C^ z$5cxaO-*;{qN2rz4~Y-FrgL$vPsT^COtrb3Gf`scA$OqHzI~a_6+|3m5NAXff}8^? zg=wjnCa`4pf{hJmN{0>a@EP58ra8y>k7@6K2%{PbW{06*bcD_fMhsthu=cQ||1(o1 zt`23_6gHdqS8LzPd&=ogJq?oyEa;=clJ$VAqg7MBr8@T{Sjh@44N^v@^OI!~mYlW3 z6!noRs-zK9nN*>97?N;w>d|)$WjTi1>tF`50FaCJJCW+tTd-GXC1#}wZ09S-fNt*qcjwYGKdd*Uy%z0qx! zk<1kF?wREfLc6?f^v>x+?XuV%rL24qyReP0P+#DCsB~>UD)`$tZ5Hl4_ByJGX0;e@%pUWFXwrinoG?>L!DFytoXBb3Vw6D66StNWx!_n=mKb_^Ik__*J0M~GQohcrL*tCQp=Yj&5_$wFneu5%~ zx{r0dBF!yt>YqKjic8~&bYbYdbHFN#$dnS6csTa#>F}YW-LB9M19*%Az7zPhD8c94-TCXBSh_#=8Bkogw)riK^%YaM7otV&{F6Njuk_=s z88q2r46RoMfT=qQS1j3MPC;#1i0m`WtjP3-`t5(-&p04L8^i$9qzPogXegMn+#R*c zfJLZ}zT4ag+OTOF+fH1b2qXfk0W-O15D6r1(5#;zHtra$pbSXJD4h$HLy_t;R&^4= z>Ty66XNY#)>K=w8*{N`SlUF>__kDul>!h8Eds9r*?>zK%VlJM4E_k2N-mh0)H+(2d zv+;FLCe+U65vGqVLht)1TJIHCa2p*FTBLk_?uu9PktkLJu;B~cPcev&CgKhP@32_< zNT0n0bzQaWQt6Mn1n#Cwf*FaEgfEY${Y=Kd24@D23>79+Y;yLq96>t=2;e`)Ec0-^ zdf9W{hs|J|vpS^ROSS7afpsxQbQOULthCm>EEyexZ>U3`vC;saWfBlM}H^b#4UA&#*N2n zOOJXtI?mq&UjYIDt5Bfok&SQ#>xm+10>rg;;H7Ov>-$qiM#e+zqxEUy*DNDuFD?iT zGqVTbG6N|eg7}-E!(fUMFO5z}IW!3D!htuqSMy_dMW(}BXKL-i#s@Z9GEipBX3CjN z2Ly2R5G0P93$d5IsFa7R?fUF?oVF}t)WVq*jmY+_IbJR*Yz`xEGAO)(!SEqoOS86q zv`YHJmWWNbxugE)sIKcFz0)C!d?xnH=2XBI7a(?rbWNu^TiP9aAmTi!2a}YxD&#HM#XO+i@L8WJt|d=&7c@3fevdw zLmrWxyP-We<@9~rIO(^*wheP14=HetBfGByjwYM_S} zUf;Y6_y;VoHy6rw`4GaxwvjJoyq~pJtP;y|*MQmQwMhIFhDn0w%_xU%j|4OB31zDB zhydJMAR6DdeVJ76e}bMw3OZ^{hIQ<3ZpSnOGhE@y)> z8)F8hpLf3P%Nqeis`0Gaqlf+inzfb9V|nU`{7^o1k-X^hYWw1WW{GsygcCr-c_6>q z-%5V_im?zvvlId^KWi}lBOEnHf%R>d19Nbq%Tir(?UTCi(wF9HkYBTT8UH04l;d70 z*1DA7lQNb0Z`}me_(1^P0ACoEkr3p_@}EE15f88ZgHQyhi5d*x^^(!VBvvPW%=0cZ z%4=vSwy%$#OjjqrEnoNyPb0x$X3%mNF7YR_3Pwdg@Yo_qD!$ zD^l5mOiDolooz_V+N}jR?uHbcppo;-XT(#0KHT<~ga7AFvM`#rH@*=6pn%Bwyff&a zcjJaJ2m{AzX8?8inX3^nbio+xL?rgt15GIr|9?3x^g1eyAxJsy`i=W>uBzHSK1u(s zw*U9_;@@}rHx7yaPc=}O|%ldx) z2_=X=@vnfi#(p0q1;mppvkCj!_;kkOlqx}a?H>o}TqZT8z8B&eGvw{a_k;qT?WL*G zIP(Y?+5;KSJ?OgW_3Y|ku*q)$uC*l&fq(>)hdC+-cpXGF)A zW&Na8T0ED!Efa7yY?bjVIsdp)Uh{|K;M4CO6x=(kn+CQ@LNr39L}a9l>9o|(+!k!nD?#PIu0cJrs^ zaDm#-uf_oAmmYb7%EtW)@wnf1U-7re311`6233zr7O?;X`t*Y1l35NXn-_m1?A z0uqWe5mAs{BGQR8X#oO3k={W-X+aSX=^g1E0g);t)C4I4fy9ClLf*UHZ=XHR{`Nli z+_TR;f824${)>?{)*2ymK5NcrKF_ag_{_YCQU0gll>DFmj%vMR(Dc7~T-6tHdq!ol z7V6X!dw2e*%-c`S&&}2)UWLmu+epYt=WDhO+iM*zKz9uo`gi|$(EjSZ%ZPt`H~8;a zw2r$3!+2n&kFC`HoeQ5$7ZI8&)2)N&z&ZWR;tn z%ipZkH7crt_=1R|W#4?X~aQHK!rAUk4v?I&)H!Qu^(m-1Nc} z%nmzZ0y{k4{d0g=^a2&3mXE(oLip_GR)Vine)*Ff3~6%6^<96vUUaEgNL*5bHC8O-fx|2aY`<*F*wD$b+X>~4b`k4ew7pLWw?ExR=A=2Eb9(WKLy)*0MHINu0J z{{J>czPvU7dH$!y=$}ID|1Xc%-sGRS-YV&4VZsBD2RglT5q|?<_x}dKew?9l_*V+? z|CFo%e~kvD>DWT1QPm?zN>vEink`I3e}3dkej;jP=V4b-c{OLA2Sg~{Bh$qJ+@&2K zqa6Z>rR5TR0k_0?^xfJwL`~dorAwuwgZFP1!kGDjLFH-iR5a6SxbdY=ZdO(@HJ8N( zIH|Np&Sl`Cgjd_(gtm4h2b>~&Yh6Si_bYdgD9RmQ#)k3n$-I`g_5NM(TI|%LuO;ET ztziF*c#;gE{#+8aJrI4lG0NPb__3cX)^+qxT=@~}$Lb>Y?v_VoA3zMPyFfji7+4RF zyeMhSSUIu92_$JzRId=%jBB+S4!3sK#)>cg!N=&7GOB`cmhnKLm(>Q% z-W1JPS9VbZzkmAjx8G*-r*r;K*lErmid{SFT{{5xaNxEU6jnk`P^>4&+vZ8%^c=}! z5k1Xrfd=}j$m~CP>t|@eKo9qlBi$G~=W9QrjbDr`ro&alR>3BIqe-vd8Uz2VP zYUOcO)$XaSmO7dYEfv-K=}pZPo=$Htfqd#4bOHN zC-!OUj^9zFWq>Yf(~*`oL(C^Sd|LIi zg)|;Gaw3{ZuW%9;c+VjL6eD_Rm=AW*8&u)L&+=opp|2%NPyAQfGrxfH46%OSnleDZ zaUE}S`il^`g?L7~L}=Wa5q=O>nn6QbO9|I-v(v||7?HT&S06F_d`NbMKD;NRKSO{B z@O++m!zCBtWaU$}8w7pGmk_St!_aFtzZ5z<8eL1^ZAqL^;Mg6-et1kyb{2^1I$c=& zHJwrb9`Fb1hga%J98l7=r^hPRAG(uI>H3o$M?WW)IA9&g#@D}RzKwz4w@o z(5ql-(@O;fsENhZ;Y8`Yt)x_-`S>(&WkEM);{#Rhtr%MD+xj1~r(1r-%8Ul^= zc2AcD-%G3P)P1bifE<^c6}bMaRG^sZCg9AttbPj1z>KB9Juw-qu=5deNW8P01C&!_ zfhsGAuc-G?N-k`<4HI+SqV!pW&53L@&|n(44(Hewpfba^5V~~xW-nK6)1{<9+U+NO zPZLexCL9ITJq$4Sk3g%~@&b?x@HLfR*~U!AX}UEevgV8NM4ZXGGuW z@aHjL^(S?_p%(v{K_LZy8c!?5 z(c#>F4=T}!MAL4-7>A;-EeOq*E~M8(;W$(9+7B#7=RkpuH&;lv|B<58 z*l5P8$2r=6tOHoBrWxSZd-0Wt^1&|_9>?XPZp}}ePiNo92(ekHd1Us21i}DGwr%rR z=0gOPHXkx>^D^A8DD?DZq zp5&R8veR1EA_g>j*?^|}Um&htO<*~D+L}QI^K?pHS9uvi?WxyRFS9FZ_flCnur90SU?iNC)RJ3+2KI}Ba8E)BjMa zrgXPx{SCp6ZwYY2-7Ye^9ncxn-WHCqc+%$G?hJE_D{-~QTOD~~5?mp-9y4M@C~86W z7nvkQ06kZ@bs;r|0S^@dFpX6^uY%ybvoFVGY$vB(Ew`_{w$gu{8T~U~l(?+5G{rAS z7<()XdqR*yzQa0mYpPk{Q*YW!A(<3$nP2@5N1}KDtwEnf zE$=NeY4k~=HXkg1pfms3Pg(5^jIZ+mw${(RJ?Wu)YgYdc2Fp+d>dSpMqZQzO`21l; zz)M$t%vWNoa+o^UoJ>E6?<=bp2l=kPLZJ>V4s)bbe&aTKO?MMJ85A?D_Js@7V12`#>@IYQL`hm+0yFnYI}vFB!h+^>e6&{j z^ts;R#KDdnrn`+IP;nwTHo&pCR6z)`OL=?g^JXisgR*WL#gZ}zh6@G3Wy-pIiD97Lo8@DnjVN^Q# zchi1NTDk{C1*wGH$J$QIkaf9c+UaCub2aL4b1xCE?mcL4#bfv4dl?QizO)Y&TR6zt z@7^?EN71>x?9b_Xsl;t)y~=5gB73yVb|$-pOpfNkPY?P^Z?hLT^RZgZ%*w#AN@Xe^$sgx`SNf<%c%N5zG6V^IpB(_eEWWFX2rJ` zd(UEGOQe4aoVwuTDud41VPN!h@?$@h!qsVdlS(It^;_CA!%!qhcw?S>nf2LeeJNFr6}8CW5`^b4hs80R4hI$*^&$As-pv5ua+>Z4So`1 zK5VAE1=t8*P{Ua5yXR_&sx?V>%iwutt(7lcZ@mA?3~1%#ULW1wKn%#WesH}gtROg5 z*RKF8XoCH2)!PI1jNwe<-}He$81?2fV%Mtps=sES2F>U&xuh!a(B{)b289rjA&gOyISJgH9Aqx zo0-cZT@^Bs`RfoND(e0A z)pMEp^Q1f74SecB{q+24xN@P3ByI2rZqEo``)euXgnLJpX!@|xCx7Wy|MzLi+HRK# zW83uS+0StRRJfxXd>$12xkReFrv-Q19`a5sK0mP9M9Z4vGKIf4BT9}dzl+z}hhhL`et=F$iYt)_uRv z4_d01Q-v^Wc%NKu5Ds^_)xmx%?@|2vD~*eWVR`NlMFt}&lYw#0`iwpw6Tl?dHF`YyngC5VW4%|ty>*rAlRS-)%=vm% zV_%(c_)FWi9kV}<$XA&$$}uqcm9oJza7v%I03}=(I1tBGMPe8kmN)f&z}oLVo4?x< z@8IpKHg{Xt`icFW(f3BzUDxhWh5{+aGomhJx!sm9fy#^57Fs#n9pqtQ6`#4A)OWPu z@#A}=W@lLa+yHPoLf1Ge;W>u7Y7Lf#wV7x0ofgnc<89I`$-6oP)EI;IJ(K!D8n9dS zc;Ca~un`Nm(!wg{C0^PH5ODHzLUj)UzO$!(e-!NKA8u8+PJ_p=Qa%}_NGVHYh&#G64l3XH@M z!0|56A42f^v>#Tlt=V5wTDDX1BHoU-ooK_Uxnyuov;8_5kO$~SMp(LvgM$1adb|41 zN!QzYpLscNU^WatZz^2_J>-G<-ejOYpcY6E0|HWFA3_0kg*M|3?U&@bS!)j>;;YLm zkm@L*WLaGaIwg&FNyS%R64zg+Yuc=U8`EC9Bg~4*6vdP7I!rjvTR|4xehLz!PdoTB*dMSMC&PXP<5J-U^Eso|OpVvu7dW4H zGN%`MNJ|Tt%j)byfA;nPYCs%BS#yHa-7ZX&{DsIJf;n2Ur8*_Z43Tf^ri0%6-Nq^h*!IvA)J>E*>P^rM=217n=U0Zwhj|$SArPB1xCa4I z3)gMOJ+_z0G=zgOX(IL=KUQAwKxs@rvih_+#(s~DF}IMUnD*5Q!8iAVnYFmkfKsxh zS43OJ_IY8k22F6G9TpHO;H(wvP8L@-S4UpWa+v5k9UZ_0wrqvh4-_kJn-k>)GLlIm zGoOI%$js2??V7K;{~HvK9r;C<@b#H@d0IIlb$Vq|Kb@Qz1YE z714Tf>C?oN|3zVxXX3N!%Lt_%2AcaVil22TwFQXaMWQTT6O)k|!X+3f!0p5B`z3qy z)0|9bgnLiXvwIIH#f@Lq(YXhhP{okpP6o}B1UN~Iq$zE_CErJLL_4()+a^DueA+zT zkKaxmcOlq5|JlG;eahY%UIis7ahfdl#^XJKjEHrs=eYoLucRsZ0x>W<BhxX8`p%dHq3ibEf~=gQ`-Y~mwkjvg^}~^-DUquI zenRo4SighQ_2lcR9agzo!`G>H9k&a90U~)Y>C{2CaRDvGM9=ouTD#52LVM(8m~D!aJ(o0X?5sG2u; z%kjTJx6kdK+(W8gIQMHicmMqJV_SU)nJU2AZCUA+<;^b;duu+VSlx1-XtejKv$vSO zs9{6Ph~X_9n38{C-iTm3``fA@WG6yI6K5ri?nH7!Rgu4I30 z>X^^GJP^sC74qg=g#Rc4bv`1tX;gy2EZvnRzUy|YNH$VToeFZDX{k1dY8nRTPHg1~{M(FSF# z>#>hO1#( zqa*mH-WgR{C_u;_=ia4O!>GBmuu;J<(M)hdJP}EwO%3NF82CRd5$YfyUPHOl%ioLU z*n6YGTa!101(UYJcS{TcQg(&krM*hp642`eQY2_GWS|{#C4>UK>|XHY2sskCw#Jk6 z$W8IjWW`Ihv4BZnu1vhXq;J(+o*2gM_4g$M#TFHCyz@2OC6v?el3CmlaRRwNBg|FzOPRyE zfZ3NCKfmMSqw;$*CSh9Y_hmo4G7d=Mc{v37G|cS4&ra~fQ;cphAu$=cW zeI;(qduAW=K%-2`pyQPvvajE1z9W>bz^?kh>iU{()@PXf5Ts>nkdY1rm&TPKf#rvN zKSES^(%?%g&v^>ZOPSX^zQ7408Rep^_tbThxABCQhSo%dOg^Jm4sJWIiUbj^Ip_fx za7?kr!9ir2i+f*V)a{kh2Xok+bcg%9rn{QQt{rcPiBm;U_kBZxpl?Q^Fyiqj3{Ob* z(dh61&wCGxnq^J0&oo?P_J0a7d$GOhgtGns0@MBmCw@(%F3(r>TB~89IkOM_7^*D! z`Z3#^drw3t`RsIAc=4OCupt4K7O!q;+=)#T*a;U>8J};ys7jZR8=_fjD7hV@RQf6U z!AHKLoUXv_HHyz#|9e9#MX1GFVx8%L~8opB>{T+lAw!@G>?mBohO1Z>x{Ra+j(`il_3IMgD78!_;%am z%{tr>_qrz&xt(_ttt(_A-YL%sS0L1NB4f3sV5ZjdtpbV8T=T~&JqB{yk!G4U%{^Xk z0XKl~dOr&<3*#cHQQC%w!!c9@e+!*%9W#>`n)ZCCb7c<0~b%K80r zIDd)teRaH(`$eS0P`1JFPGF{~GC5;CEV3WM)*XgdHYB{pKif2$DaGaXe2tJxt8g5T zN~tCgU)9z5y-lY7)Nq`BeNh1v`e-=wvRdr9#-Zn_B`$1$&-Fpd9lX)=qn0Y!5FQ=R z_*LsU(R2*W%=Of9&OF5r#uguqw{L*>ubo>>pWpRDG;<6)8I8%KH<`Q(;uFH?v3a@B zAkV-`8T<>DA+04=*@;`mO43F=Y?IeMQb)(*C5GjbOOyz&s)p)5X=?G~r0Ma~X@aOR4rAR%`ERgc2$V3H=B*I2~T!fl!8v-!xnD?S@bmK<(8k zgT&JPYDB&Zb+vV-Ups9~c>Kh0Hd9af@+Br6Apl@+gjwGkqX$ah!&qgr=lf@ry|wJG zD`~8ye*}if2;WM#38IZNt7YX7T4;Du1M0!AV)}+5Y?yBV}?G~6{MQ&*2(^%Y;eJHKI_ zK2m$U^U{$2mZieObCku^yhpFe-$@uw_iwTj9Wdt4`Lzit>{;%$FhesBGY@(VJJhE7 z;+%u-sil;kA8r1I4ez$ry-U&Dge<(o0Fsqz$Un`-{_g9`m9IArJEN;B9L(I3JKY+} zvE4JKssozryAtUJfw^m(Zf?ZAGSadJ@UI685NtR22uZk;p-^?6od(=uGprA#>_Bne z*ScPgq4VCk-yzr@$iBsU<8p5ozH*39e+0ov6xg z7H3uTWdhvqXNT7njv#2d?P|P{)HR0H43%M9X3^6R7Ea`teG9OH4P9-y+sT)fMZ-O< zX}-VX`qOly^7X#PQVPQRgc)||&{(i)h*QhB9QUSWwyAt%@vZd_ix1BmxX4&g^pm63 z2GjR-m<~xd2*ns=VnN?v#xw8o{lyK&XEQ!$ZB_naYk`hVqvFrz78kin*CsD7WtHe$ z)c{q#`|%O5IFL^iVAOKKQvhcV-k&|%o8|-rTC)4r?@rqna&JXTU_*M@U7WGh&!a8b zg>}qdTE)u|%Ite^@?(80K!2%uDfqz>(Zt;){QbVRaJG}SX5LfnDN1Y_s?1N@BHXgn z1hk9{xHyr)A)l&3P;{8SQEFmX?aHD3-BvW60KKE*{ws}WWbki}ps4J{P|<1GPOYFx zAuSV0i}#>=WcGWf{dnyZv_HX~J0pX{d%$Ewwdw~K@s5tQNMB}DEPVz*lT))dqyjUV zFNN{g_=VX7Zg-ssz`9P02-h%3io>%95e%)RhfAGa9rKU&V;}tNQyPeCjyZFaSTFsmZ6Mn*TCCkEV3V+&KCvVjR{UB@W zaUF&*g!Gti%MT&>SEgv@h$0oxHXGe>yA3mAJL)@LNexd=!!{?jML?&ZKT^k#Box)C zKMFj|-Aan9{-yzmtC6c~`4jx1G3;?$MD@yQ9<=R#OR6JFs<>sGZRgUP_EGs18)qd# z6b^}wPAXdk5Z6+Cp{CU@%g@Dgce)j`g_3V6-J(d`j2u1h|8O`e(11t{|io~HDli14c0BS{-srl5a&3XsSVx+>kA|kmp9=S3y-zbRn+pHY>cB}uRol- z-Fw5OCiliuaXcXQM1JK9Z`yks&C&W1f#=qpC&}6pgrU(n0fIiuj`+}m(aZB3?&xyLY`Th-YfO@2o#^a1Pj4StPUg=r0-f`<| zOMfJiZl`{M7TihmGYCzx*HS}->!xuVWw zJ~3frztw7<0Or*4#Fq_5U&Hffp)Z8T1`5j8*CKY2T2oaJ@9+9rinc0@Ow7_WR+Zx3 zSDVO_D|vLZnzm0{yYLl#7t1{ysUUN>+fsU+GR{T z^1Zo%hj2+Y2+Y|l4@=lyIw~c}t=H$8-4fJKgMa4rC#D|*#d)A8W*V#QxH8@pa&E6^u$ zf+lZ6Q)7AJd=msO*JX@?sYt?v`YmQc)cZqr`~2iO0MBC4(ZQ4=t;&w-=^R5;sNqHq`SQreW4$CU4yUYOVuP<5}=;MzDh%=*%xPl>lJVyf2waTQ%u(S2+ zsq(k>CB-*u6ki7vI-VAQ6%AbjZ0iDJb@<_6Z%9gKZQoNFxLB!oL3-o1JPV;qZ{=E^ zq+p6(M_2p?dRbF}Hk0Zl$n<+vLxaeiC{Sn`t&h`Iz)dBL(zN(95j;n^Q|)irr)PO< zBh`xE0sD?y0au;et%lp%6AWB-wsraxW3hxvw0U|oFBIH7253vwJB(vi>CH#DifBe(9S!* z*+==nKCKk&;VqWEv8;c|LO?~(+T&qqCY2yN*f$c{NScH&`4QXlKQ<+u%5V6#GxIVA zp&CPwi9ns3acBp3l0gz)^>Q6N+pVqmmX9)ctDJ%rQ-wZnZO`0jnc^EV(3-93*NI7e zF?wU4qzL1|{2oD2!tWA7R5WhZGDcYsJDI&!zoW+sHU~>}WG&Yt2 zf+AS81?1zp!J^F0a*d@2Jat^zVCg$weEmJRtXw-r=q_;%JSNu}2k}$5dg2Y`S0jhj zCG6)M%*?62HMM|O=9AKkLS*$Po|~NZya@>ysaUpp5hH9tqb2_IT%RG@J1# zO@FYBThzO!8z1Bw86I#n+3uD4cAsqRZcsmnbq7zR!6!!#10WgY6~rJQaZMfR#qa;} zFOciGU8}#qu~y|r^o^VFr4ymX}H_Di6dkr)oY`xmGY5EMn6-D_PWx)B2F2*BnW%`x-y zhAakYh!;pu^-evSh~G3>5bP|z_r6iiHR%~SNH)fpHwAIISKtuAh$XtSw~Mj}Fu}@f z7JZ5F9;?1llCa$0Qs{mG1ulw46|$oj{{vOM{~b3&wtoX$`a;`Rff)OVz{!90qNx4X zYFiDTKgsrQEx&SqYX-n2KnAe|nTt{Q7w^`;{acekcdi_dsk8u!F+x`U-DD%OS3ykF z1HkhXTbn5Y4MxwSWeLp?{N*Y<;|R*R5EI^gp>No@Ad+F0+ZHD>?o~+k?7I?RO5{XT zCxoNH&qB{JRZB|y?d9|G9p_M0E(z-gUL(OI*3Q{)xH?lY} zWHXQQ01uxE?7c9M^5NY#F-$QLsdKXiAR#MJ79|7O|K`AG459!%w3z)zxssPEL7M}{ zI_Rv37s!CCza6VQERj=CtJX4j;dHYpH?3H?`N^~Bhe}U^iV98|l)HG(=76u(5uwVu z4dSH*%x(Xhy1^w7S&V`th#{7%{7nq)ohy4izz|q~s3?-{B`IQX@`ER2M72VvPMmWN ze{moN`X}V(Z7Z4YPEJ#k<02nqOpcVF<~$v*BmEz=Ao|ZMGS2+RLh4T5MX5G#m6WB^ z$8C~9?PDN;%atIiFb-uLL;DD3Py{i~Il%xFzW2}9jQ;uKKW_1Ojc-QF)yOVAXk3&V zc{{r{D2D58Avwq2RhmPn6?&3Dw3*Oy>jd=0b%x~ zWmPizD?5pO@ljfIa+@ISFJR4>2BS-(c@aTQz^Vy#09aU3|KY+X=Ol3gEtaG~nq7O_KvlOwhX|SLe#uR;v#A;?>k=L!m*RgMf-RK)Lxr z;-*56{Z`#1insQW^veGEW4-?Wv0Iwxq8{*P=GR?7rd41nBn!CVjaWed@LGA@$Qx{u0DwYA#& z-EKW=gw*YlXsDH10T|N6IPBjb?=zZGM$`Yr3<+24d0KK&0>6Rb>7zLWfh-xG#x@SYiPJ(cY%q1RkP@k10QkNxEKQfb&OW6HxVbLnH#Pvtpb zg{LLZ4TyC3+OOeG@zo=v`H5R`#tRzNooAQFbTItvgF1EN#;89K+m?&hZMp zqzZ~Ev^(nsWS%vwjz3g?maPfi7yZzY+jJ{XuY5gSDd0T~rq^jf%MOpgoD3t_2>NL2 zF5fMHdCY>5)i}4xo{~R42{92&-!&FYx7;zh%526N>h9tB=rU;PNksiHBYy@Jkb+C& z-Ld{~BcRSfvwn~lQT)PigU{Twr~N~cm=~RTu8PIrH{p1xXlqA`WYD>$@t0t1q)F3~ zO47(wdfBBgweNL0*<3F)6h1R>8EYla)Te2)6Ls($vGstrp{WyWbx`{TE-J3KSiHa1 zzs?pVilrDIwLVyAHe@jN;$-YePI0&>Zxx`20WiqX!u`CH{*p_tRHE276yBYsm-_%T z`;x%vW7O$`Ry`%E7ueVW(79eRv1_5vdzypbFl3IW?^PtY4xg15iGM#F%v_<149_+E zBP(-4<~`i+?wYN4@aghbP*HRa%wgCbkwR2_3u`u6KjriLym3aq4gF)ISX0#zs%h(X zj|_^5BL6*XpYXg^-ZkHLuC)C_XB*cK;rOGE4PBu_FN+v|oB7)eA{dC8coz9pbBz1? zQc7MVXRtrR)Xnx~A&ADDcPpgX;e@w7Q&)5B)1N<`HqyA1?ak3!7q7MfIbOK~1&H1B zTaU>hRMgvm!juo5rcgW4jvEhuvt*JBQl|)_Up>(Q8@#K}kZ(CboeXKSbra&EFg*ee zUwnPvb{7sQe5MH`1gp?(J&Vxjp!COQ!cjhtE6fcP9Wx7&^4bswEb6zn<>N^FKqr>IFIB~# z-{C-fV&`#L#Zs;^c&;^(jt(#upJJN0G5k0o@Q;-|MiSJlCg=#ykw zE&8ou5zFqmmbu{lUvxbdW*UIz)`#2*->iPmv^kYjf2p^5m!8`7QWGw=0mXA5+rf1b z4(Z<;;PQBGB%D6MrXPqrT#}V>7=P$TZPD1QHtJiLuB4;AQo|QEd`1;tXl531rYXKC zFEWq4^y=c*!oVwGM~WW`h9ch}YWnC+)GB255k3H4k%gXm1S8D~B&5G+S7Y}3lf8)9 z@8}4npb>3+!8QJ1U;1;OkCOx@uL*fc{%#kLwSDWhD>Df6_V>$g7^v#zknu?Ow&I!t zzp}E^aT(_-Wo)eJj@r7=A3e(-N|7}Y!;5EmQ~p|iX|u`JI;k`w^hk|q#2l2Z`82C! zuvceETWu4rfZrURCYY6*=^GOeTWLHFdBzWo>j1i1&OMVDk;($!8DUSKyz2)(SLYCq z!@E_q1sPfQ@rP-Qt5na^iz+@|@jqwo-8{`u_y6eed7XH)sw41d7D5jjJ59l#B>kLz zs?j$fZ5j|QJNYDA|6Scqt8V3Zz_j=rXQ82CsDZoE<7FTw!tB+PdS&6)36p3<0+NZS z@4rpYGnRLj)bznY^2qP8fAIcdXle~aG;@+U>I2WhyYa^}RK2htV;f8a7qsaKFYJef z89>m1*S9zs*G&o(3lF}ct{DsJtOx!2S=Y^EXe784OPbeKUDW0yGT|jsgUOit=1F5a zG~0Hr7uYpLwXc4R6MOu`rFgUWYY*L%$-xkn8L9oazV;tg;`44}dj!B&~nEgQvOUcPzFOHO#)guKzhP)AEa z1Xo`Y%|ocf)F)OFQgD&OojWbj@;Jvu;Z^7MW}STYf)~Otu}DKPcB@rUKQdGRC)r$Y z*hPs}AO?^{7idHz5S_w8d!>87xV6p0ZI3ozXfa)cfnu@aDtBNdh38-`bA*A!^*&~cuho;H) zk*~Z(^J4I%8N@tisGMGW*A6vM0vCGNT~x2%et*l zNw|~CGugd3mfQQ~4FL=Rfytm>5z^mJEG{awAZUMj@UR+T44uJxkQY!mSx>9)CX3y* z;`!Rr+)Y`@N|u{$LRYQ8lSv-ImG1@=M`JPpiC8+Kmx;?Il7VB2B5671deCuH;`y ziO~_3EdJ0xSVFYXg_LZlH3D%zodF>OG@R*dTJfP7>WQs1*j6vB_2>cD_RPs_?Owdn zqd?&gu&+8VQ4xKl1M6WAH09^7Qqw4V}1!{KFD2!l3MRc_TlKvd+qr&wEy;? zq%S7(j}E10sEuY0;B2v*OfVYSY>^nQCj-29cxtsZ#EPdf2A!x(7Pj)uQU^Pe*J^*X zOw`$xd3V3uR?KrZVQXu&biU7lRo=GKl0!0OjGEI{bj;Arqs5y9TtOMiM_^z2y*~qp zusu%?61=DT9@T*?Odt{A16f%bjMzDe?>52H8O?{7saZeUML~1zgmW3VxFVT1x`B2i zU#~dqd>Bv_>w7l8x*rN=|LN;$(Or12orA?2zcS*g)R2l@mx&I}@)f-ndZj;Z07a;L zt(re3uu?JU@JiKJ$0y>zX}z0y*smPI=1h zTaZV6WEGI&fw}ohKI8~xc+zo|?AI?gy!kVdG#uKB2dd=cL_;uxQ@?6TJJA`4M zWB1nGOnCEeUrE`av~7PbwPVV}IAbr3F;517{x*nra77>mj~r10b}+c&c8{=`iE7vC z^%GaYa5&ErQ`3e`le9WKFE#~>Uh0J97El%KM1z6S0T^d`+8vgG`w zytTQ_gtGG@d-kp7+m52^x}tIS*^)K_Bqgiy2 zNlrZ2(a)OahZly+*FH!#3y4b!g??|iU%c+Pqr(L{E5KlQOvC-^9F49>eLjkidN(ey zFFoxKSOBTd2Mf>=N`5=VsnqkVuh{OlgEYmkqi@Qw_tmOIrtTTbK0Po9FCR_Aeg}R}9CX z8N;4M^4X$rTNuvN<>pk}*3*?_b{L;nV)pAytQb%x#cD`zrTLEuwCp92XfjadfGx^? z*}O{2l0RHrCUX?^#IV_nxp%rit~+L`$0$$qPbk}N?{QOCJn1vtq3g>!S39P&>eP&x z8LCUb?DYyr47(9-tNJUC_)-_Gj9r?ep3N$UsJZK3dHgYTq7F!6b+l~CZ1$#y#fqc62xbjcsR48X)70tCZ( zOm0GQO9s8;!Q!`fwy;M|s(!u}G!IPZd)9aHH*#~xjWT@7SX+(BW3;E=^itxfupD^s zn1*@(pJ>(r-`58a))0D|I}7N(RL44`TA}~-E)mMGLc7uzr4vcCl8-N|o^Hkgxc=L? zi}Yg5%?F1CMaDavIZ?gb7<9GW^3~mCbU1}fV5tqNE9E<7g!(gW4dT7O{j!F+H;3jceWKL} zi0Tw*N9}`R&0+S_{Tzi>Z>5=w_cRI#qGL)}(RVjM=gAFlbs!-aIdfUmQjO$)?IzLD zrZiUE8}fGg()i~aCigSXV=OCI8;%d?~Z_E40s;pjF zRUH{>2^3H>mVFa%^QY+J*Y|l8S$hEYDFl$3%-NC{>dN31;P570k8xaHT~AW^SmWNr zVG}U4*Dvg0C&DwK@`Su!4KFeIjO=$S8}IuQ*0+AH9u^cJ8Ve&TDv^u`!jIb*Z+_J? z!YT2diQR#h!VpYws&H_^@sW$U3t{VkQtj6}0hba4f@i3ff7%T7aYo;S z)uV5=4rW6;*Ae;mrmKvL8cUE>z3|cprx;@8 zu5Xo~k6FKdDs)MkFw|ODJ83mUXG>%FcrYhe8Vut~7vM5SSq}|mKh@@M!rzMU%jbJ; zA-nCJvo^#w^(oset)5Gl1@u)fz^7jlKR`}4AoxPS$ft3gP(%xh{*uqY0T7?B9LM2G? z?Lc}5C`n8LAS?eA`@KQP^N7~==RW}n!_^hj+CycO?60Bq18VnYpXaz3Uv#+)X9Jz< zwPcQ}8h;wt=5}4&xxqK&C6W-t_5gKrDL%x^dDFVBjeX8(lJZNDWYbU{^El|$@5jE` zRQj#PfRuT92O(`M#YujI`_oyssry!$(xDRlupLiiNN1)oNJ5&f8m+sP8Z_b$i-gP) zZA!g+C2_wdHon=9w5aFhyc2S7@6Z+XqX6l+KMc^(e$%Jb%QAphAAsQIwWSu|cI=H8 z3GaOXKbUX0(R>cvz8b4hz)18#9BsVN_ae9NW)W}T)`ZvFafC435W42n9-J7mNoxly zbXb&=eU7)a`&7jX_4VPh+9~l@klSu#=0vAcf}+X{;8o~8PJrVG#X|tLU$2bM>4w}K z(VuT?_E(}W%jho8A$9buZ25vB@>-rT+t>74v`$Vh5$*`IWUi3H{zlg;~;<8 z+nE*b-1Wx$w{+!5)Xg(n=WZ`IJL+4>l7piGTH`#C{?3vV$H~$oBoN$Skt6|E1>790 zeCd&iGV&pOA`jA+bEsBZ3O_uqgtb2r$$BGK`kew~G73dWg8uW}soDS7ofA%#+(o&Wh|%9rC@L9 zpp7mn`6$}*@#{>DUyk~7Znp6wXhCNX3jkC$ZMbAPcs7<2oWkd!$M(3guRVDuX%v)H zbVEXLJ4d*{^l@ z5B$mY7*R^H#hd}=dMkfqLjxa-^)2(7xo-HP^iw|Thv|HOYQe6oP2MZHXWYFK3%l*} zh^^AjTP1?1EFXX*=+QRotQ!aIiZY$*PF9MTaFN{OJ>tbLkbf%Sz33`$OL2m5!8G{v z$&g0eRs&7bPJK{iu8-KvH_g$4(KBGSpXMt_Kw+Cn6-+m|h2(`j0_-H_kA*%MbTsFg z)MFoJLyc~*42W9tr5ZlixqCYY60r0U(w;ypm`>?C+`9$1Wb_n+qO5A55$XxS-vFy5 z$m+K|g@@yTAyWFZZd-m~LPpvZO>o(5BqeMYWx7cTi#1=uq6M`Iq84n7pYM?sh(Dwm zID`oLlyJ`WYLXU7;<$|Aj?r>-ecYLLPEf^uGjTEBrn9~1`=%-LA9sZsJ<%()RifKk zi~d-8An6?dfK#o2*lYm7vQig~WYWdRN*Hyu&(AoFR4@DF)A_2_%v7)#kr6*Gr&isG z9RWqPMqxH-zadcqDEq10%2U1J-@PHjffurT%%hCa!)6$pZETeC6#EQeTr60JEG*n7#4O6;k94 zzrD5&W=B(+KYUxaGL1U;dR;_{m{$zYW)uKTIv)TagH{aQc=s`BDOV$W?Cb^O7oo*c zk>P?L6va6{(`mkjyHx@Is|yAx0ORP#56P#&4Jy580s?t_I08@!H^wI1-KQm5{k}!i z<<~CjzxQg-JYct>P@MJ`o@9*)%ncSZo_<|FzWJ$bC;pu~{g6 zcJ}*z6Z4Ag%G$UuUs_Mk=WSYpo#Hj}BU2V#wi6_PZHbm3C~t>$-OLzT(dH+rF8%D& z@Rd1GTMETN@82PxhF+CTwD2;ONq&E|=^DTjY)yk2;*N{e8tXTK`DZ_ePo`8^a9T!E zI(_~sImvX{T=eN;FE=g>d$ShSe5#C>A35}enjyy`E3`yaqX`9tjdhY~EONH23Rz%i1B=rJUH7we#*?M}K{msz4%=MHRA~zqJ%E(WejqN59;7g@3kQ}d-5yfx>^8ab@B=0 z>m>@u$FPpm21>sWd-S)dpom!b~Sh>{hQewYa7<_ri zjTPb#r$r=U0Ws4gd;~LNs!OABtAeOW*fjICT@Jm8JISvhs!UD(k&*rvXf;~wqJnq>7d_c;whf^qNDs~&D#9Y9J7i?VI!nG`9~F4* zUaZZm8Zms_M(H)P&L@K|$Z+i$M4IjAdFGU`46~(022qWuuj;xt#-?_ZU6J-PfXsD# zaFt)_7u8738!|2qg>eO#>nKjXSq%vz`_l1mB6Oi=kH`M&pmVj;DCE+ z=8g-^@^@Q4bgD0T)2-c#w!5VB!Rn#TBc69x$$pE+ZU0~Fy=PQY>)JL7B7#x{1gSxa zC{>VNMWu;|C_O-wBF%tE3lI~EfOG)?fdxpD4$?cJBV9U#o=~I&63`eWWSzP8e%~?n z+G~$*ukXh>zs?Wl82m^w=QHo;e(rMJ*Hv|vl&_cBYsW)4ms93yzWKV*FU`x?lUqA= zS@QW%6W?#yv}!$?N_giu`)uU7y}hi{l;GryM|S!dPq0dk`Pa3$)C4# zYeBv7*^`jc^s8^q4r+3UW(a>c$`Lti%LI$MNzsn<4~D!$>vus=y7!@2&6=KDOpr2e`09vtF0JEps@$L6@qY z{e9;KkZ`$rVL0(|s2HCpg&Al>mnUv?9*$ewh+O@R5bLb)GuIn~Wc{i|OA-It!8;An z$?4bP@s(j7ExGI09#>gX+{buahCEMyFM`6hz_&KHn7Ud6*(bQJZQzYiq4HmGYzo>h zK9#NpL{qV!7PF|0e_q}?SkCsoB~XEp5giX5^(TZ0a1s3SOD$Jn(R;>?Ii?X~`h$%b(0MB%-K&x~Wv2MZ zFLPta8t2#YamGX+0Ld5uw&2Q)!+Pj}?&?t7S+fLNQsCeQMuVlXZj9Zh){961Y5+`!OTy60tSDI8`e^rq|ko@bX zML|jGQ?eqB?=Rm_4^^%z)^gHN!t_Vt<5z(c4Eiz5d{V{(SB~D=Qfp0@pLsPK5s?4P zJn>>%gF1Vyh<6h8H^-?vP(YM}P158p0KW}4GvgLX?xgZn=>3Z1KyZ^Xz)k8(7@V+K zQkT^M=OkstFZ`iXhBj}*m;9s$REH2b%9LUifdzBe%@V9SGo9MOO7O|(&oAp^e-Eg= z@z57Ud~P}3Y#r_}!@exCiLO7ng&0NAJzi^!R$yUtG1p|8QCBN~EYG_I+FW;1$k+B1 zX0;P6=-x|7VK#gFRu>SD-IF2dlhvW$7Ew4uh_KbQ2DyNpnw^3>LiD`KZ)?sBH>%JG zM{idkuEFIy2+%j@b=fSJt45ImE+Bj=ViW)pjz>7oI8Wry z)Uz-w8u&u5NBG9uvN`$2>ulQTh+c{m{3O&dMv&Q0IMLjrFnH44S=(c}awP^@@%`O- z+V2IW=LRv&CR^uCgZrY?5>`Ho34#C(A3&a2s$4a0L$L;OPq5L-(bTn2@KgMaUQYOR zHQfi)8fEY5NxAsRlU}iIb33U?X@yR|O!`CI%AtQz5(oiPw?|1UoO<^n`L&!A77&oj zdsEhK)^l;m_giPA3T}*g@t3+O>RJ|nJ0Ks>qxGwbYRY2>%6g z0r^!7SfkM4->E2iA6T68+8ii64C}_HXAe+#D+Gbs++sVCzq}xe_29NaZB^-d@ zo&h02I$0kN{ce15Wyf3#n2ri;iK|!=GWa%J_6C~@XenRl-@CNg7As=5b@h2JG)yxD zDDl$bizuP~5RxPcz-0vjxU3EiKtu2W0BWF31F#VZxA-*EKT;;Lr3ji)K(k#j>jR0U z=aacH6-0q5LjJ$jOr{S(;;0OPGxd3$5pI3@{+qy9raf5u5 zlz>4Bz_}VH$=dm(6-!TFBQDeC)UMp=+;FM5nTipw2eR@e{UUML-OQ9`q2e9nS&EQ* zi*xTd4_voxYJ;$yPCAvAU_d-vtk`o-Y8$4wFp2?-HCIB6q^M{kl+180-@ zo}EvOKA3mBUGBHhKO#FO;r4^*hp!*s|ElF26qF9FBYm5%5N@|~1~*wfGn~rifz%ae z)%GZQ&o(0e&hHOaej7(m*-WH$v0K8x+D$2UxiqiWWxH-3B@9i0U6a7#dMbRuKbYSP zXx+G6RSA8nI6DDOlY5_N5k$oRy*zkwrTHn|Ks)sIs#p`z};fcRk z2bFUKMZi5nZy<+{Y}Ar;ZW3;g?_&L`MnX30*_22}Ky0+>wMWvApE4TsI5IN+L;>SL z&Jq!)Z|jf?tpkm&mv9|1%sCpf+53A;(~Kg~FsqsKvO}eN&AR#<7KK1#dJSU*qmo3t9o#DFs+Gc2<%a6g^0rb>K(6-!?be)id%2CCMD zq;3P`Y-NZqYf#yP1tdcUsfO}LdO~`yxWD0{wU<}aXX&;Vj=WQ)FJvD$(7~Bce_n)$T5Bg%|FyZg37u(+P`3A1VB?3;L1VZCqFu z0apb7L`55ee~{N{RiTmE%I;em@FE#W^pV#8A05 zmJ=n?fGH%-Zuv-DNUsLpIl(2lNUj9+rVQ+B%oW`rN8gemW%VzAkr)wAtmbp>3LGQVM>! zk8*RW-(A31Gc}u{uSrwA}X&L&nnwTTwuc2v8WciB?{)cU`4n;a+*KIA< z>~hwcg&-{OYbQRBPjeS>Yy+BUQtv$8KjKDP(P-X_Wz#G47f>e!Rl+hcb3H74J4d%# zkYUa<8|_xyuge=}rJ!8za`o-`LKmDmHyjDT*uj54Q_dkKKr9O5(W`WD?KKe7;92X` z5+dY!rB%|!4O^X?9!?g*n|ETbZ-cDWLHJ{vF9;>LE-5ZZgy|!!W>~wi&h*($iJd6F z+5lklo*iqwF`&N92RMNL>WrxXE;@}lbuB^;Mz2?5M-Zyi_r=9)q5OHj6I78Kn>qR@ z*OXld*Q2QG9ZxY?KU`?EOe0!MXwt!AOk<1)oNw$~>!zRAs{3W6WbJg+Wu1)<@78C3 z`L;D;b6lkg&}#VakIn*s7G49L8P6EXrDl>5w$+oFS4=$bFQQRQ+3_szEs^XeXrtdVu7sS*XsUUGrcd27Kwk)4W$Eg zmaZf{EQDism9G37K#u6p9~icKyc1Zs)B;B%ie5ygv2}Uzah=hB=ESD{Jh;q59Pyk1 zLfdf(Zi%1kX91BdNcp9%KPE|2#uFbRR*jF(`biaOZ0-55U6bM|_&6zhuJ(u>8IEmSDXpSRKr_W+ms2Jr69t3+ZYSYnFdHpS~ zWaR%5F`Ka!+d-ev(~V~8Efs7g7!@2F%e+IFXDr@NT6m=Ld4sOWM_1)%aG!4u8&H^_ ztPZHM^vk?f@_R|j*Pn8n@GSRzG-2)5@;pg$C{FTP|M|R>`-z{cKmAO}Ar?3If#FgwN7!A&+IOiZ+C4Up{ppfJq<7#$!82X|qO#m!? zy6MO*t^q`Le~weWZwn|8K>K9`fh~q{kV`|ym8Nz&GngNS5b18U7?`KdXnh#lX6hH4yNu!Q(;Jh+QXrN_ z!oN#C>@iLgprRxqtiM%oVU@aAn0DTN zT>+(hTV!~0*PQrE=bMS3n3$VX6HRh<3ebc9x1)xte;Qyfj7G-fTp&MBBdpBBKss~s zdpniP!>v)@FMYBsG>w<#UV;|5%6>Yd`$Zc-8TEQb^8AQF03&&X{&cApSIW6*1#sDB z%7PQ@(5E%#TCX@qgph%01E$I5t-%`l@0c@v8$W)}=8L8>z?+iz4_DPPeCvN)l`G(? zO8@DqMzaCe@cCC?;El6jkP$mbQAaj!Db7K6K>sTT4T? z#=#Ayy{7Iw*m#D4v$ybb?RxjQKS;uCC$*l90<(W3soT~y_;)<)Ev>xBdc7x7hUdh2 zhgam7m#|sQn2NugWB)1ON!~-yk{0vG!uXu-Wx5_f9xoybx?X0)`?z7IQu@l>_RzDh zM`Aw>)q?Ra!-WylOk?MuRh?Qutj_#g6KM6WSJpb0!^XR^dBb{m3aqP>B#hj;HR7pL z&L(M#+yn|k68MoydKH10znH>*2z~@)0`RNEFj5==z$pMJ2R}b=4_YbYJHukcgrvu_ zHb295&8@}pprX(#BBe({<@WMscZ5A&-r|i}lZgY-12nR64r|{(CSwv9NW&({md%sC zhRr@Z`@Rz4W=%;eTgo0ZeQMVd^L=>1Ugm%AC5hp)lL_u7_^LOLG2ttjrzPd*lO~6a zEKa0irMOZP(>Kl-EM#u`Uu*kKJXqz3*EpDRGi8 z0_LueloGb*xx;bQ-1%K4fRREgTYvw1A$l2scfF$>GrrK%i##tsC^cm@(wNlq`RGT{?wWnkx^&3Suq-06%jv@T{ui{b zpmwr<=kWv#3gMch2|Un&vztJ0e$C*DX%j1VQwl7MRn6LO@tsZ6%$KmS>9&=sG!H^* ztlVAa_kZ^@_*{dpRwPK^yJxuP+Axa4O0SYs_2}8`ciy{-WreOliJ+ok@~!Yq)&9I| z8|jT_aMx8XgndE%oop|TfiEmM|vTC#aJ!(X{Bvx)M+`t z-e2whyl;9%yu807^6#7!EY4M_aH|s~FfafX3-k&5wGmGz%GV9Ej157%hrX{=?4+c3 z25vuz--0Iv7O3+#^8-bVf6wCo`a@Jt$#x_M%&2qU3OA`1KL);t8E5G8x1Y_(CO8%E zG;UqZMq3Fp666LMU-pTYL7fE4BzVHQG9Uw&lqmUc#*T!v^g}cU;kc_VPKy^1)E(Zsu7Gk6`QI7z(#^~EkU$RF3Ryl z@Ri-s0p`r%<{_2j9*X{jcP!qxs1HBhd!8`Wy~=jK0T2tZmU->Vbirq3C7`9HwK|KN z%VX*?*m+Qr`5w7QBo6dsg;JFFi z?p>#ect{w&EW+U(F)mzP({@_^eP>@j4s3`Y2!9fd5k{6;+by|0GCFg^84Nanu3MsS zDS9MXEF|5sr>>m(@8_|yCnvBSivWe(md3u-u=7Q3dzdnJ!&m-yXT*{w#8SJgqz-VE z`SA{Xc~_6Jc;w=9jcEgV@SfejQ^oy?#9b_cdy_H)3Kkc%*GKhq67;7EQq5}IW6BJ$ zP8s@N#wO_<<(e;s_qr7$o>iIs)h7O0&SMtpSzC>+@Bt<8I3`pt zp=Q-4H1c1Nyejj;DOqTMbM1ek*9L-LUyf1yZ_onwq9p5k9Cx#oUtvF%L@ zk@mzMJ!@@gNmBN2iu5ty>A!U6repGeH(qOfs~L~gBbY_Bi?A71kji>_maZoeiyosrPEPTJnBzx zKUAO`e~XXm*7IQft@giF2-V2`7ZG@f!e8&B{je*8l7dNKvf68rtWZdqd+*>Mt#7&S zcjsM-*?{18nz=$M-~Tj3kNkb|KfzCWQ7#E#Z{e>8VUD=0a|4Kl z3PiW6-JdI4rhXkN5f&$xN%Y%1VY5883ww%Jgiw(gfT?S|yKQDqM%~2y33q>b>4S`4 z>*T@8?d8UiRP(VdEH|%L9rZV@6qz5qNBKi(CviU?(rK;7FhTC&XOlm|!b~W0Gm<#L zh=U)%kV7d(dB!nw*p7YV3D{-L`4YgD$OCZ7g0XgyP7dYc-i2>6N+3rZH$)jQ1IliTiCTuZ7xY|&)zyhAFOO{xctZ~b_&)l z4L8$eK2N6w`T5WFQZGR^t)@`HR|yVlc4e5=%dV(P2yR%m@mbRG{RVd$c*CB*dyxGo zYJVjjW!H$#d-_2U#$yQh&p!#9d#!oNVBIrTiiVu-b8z`TnVNr6P zYUFV>Enh!u2Mlr%E|F|UngUo4!XB{}z5a%??p*i@j@^EIgB4?obxzy(hW2+Z9?%^8 z=c4`7BB+my4m%T~?C1#(+A&%Sz^UZd!9PVd@%a@_i79mjM5e2`j-MEMKYwKD7+%o7 z!zEe1v}WOsPgonPUaMkthp(-rMmjY+K}}8hPwLO-Pd|#pAFws zgO9j>1&Korls5JLVHqFj_cr5bh|rw7rzyV13+1GcXUQg0-(x^Ht(p{5%1k!q2}SR{ z!4aA4Fv8ogEvyVO`}3-JQ!Y=8M*@@yB>3=lmfR!*yOf8a+3wX^L9% z97_1decl3SOp)i1t|(3y+?ppB98wQqUeepJv)##%L%VbN?JKqfY`F@BzklHvFBqVF zrlSl$9x0zd5A(l|uMDAEs2dePOBlM;fE{lX-{n>jS$k`B}K>9izJOmL z?%aS5r`-d_XJeQE@~RS2tqs@e$LOG<(n&P_*SE{U+d;Ar-5!V&!|G3mUQJ)$8)cmT zsUq!hklS?JwoHZ|`Qhfhf7@{280UpwOYZvvp3Mt?V0+)Xs)snUP;p;vbdFf~q2Y2e z?1L8t=Q9Os$x;}|(uCOx0u45@S1a63){_Ai4EvqRbm}0trQrmT z9^}qcUoaur(1*P)q+ZovxeRuf%j&uO%c2uR-DU>rHAKb$<00yn>Oh_+y#j__p03>|>z_Mt#v#P)cNAq9;P54%!sirtB=3bV}sLeRXe5S6d4nB6f zSTaD6<=*7~ZYE0di5$$smH~Ut0IYO>;Omo~GxQ z*8cWK%2?fvaT1CiK~fso`*nltST|2QE2*M;|KD!{p?G;e%GyT#qZ z_E3cIxG&T4w)W#^096~)%3B@+N{<^X7dL&^jziTAfrP&Ha3CRig}VbU16WYB-w#dx zmQYKlFx^R1ZDG5p{vBVL9N~bVH!>Vxnvl?W5sSq??}toK9jL37S0*y2R;hCt@+jNI zC+DIo&mG7@YTa*x4h6QlX*W`y$tuHoqm>k=f(;J$tOvTZ&=!5xU=nXH>T;d{R}@flR#kpyqIob=Sex^B3fr3e;Jpo4zMAgF2uE>} zoZe8EWo-NlBiH{~Xeu)Pw4~!AOvQ&~;bd(qk)uT`64&}AnbG+8)RvjiT6o39X0|$$YCFaf zRxz;How54yy)K9NYtyx@vTNeSBFSGYdU%Y<9AQMK*)~JZ^%Du) z!$sR=sduWGu9Gq6ulmh@F!=FP#5YzT-~&sWdNHa=OZ=bLR~%I1;xY#;!0GzOHAjc) z=D*$sAT)9rAqVi5j`u<$5KQ>hP!FZ;U0okqAJJy~Y_+u(!&()f6#hJuN&XHQHw9%^PL1e1|cX@yb@PM#8_` zM-?A1kCPBdxkzeVM~15QHZow4TwS7lp(5a17YrNc>Q%(!H<{H{&pwP8~+-A6*|95T=kNP>R4muA0$Q&M90!=zuuskE?NBF!!d;Y1dDae_Sm>;jE{5 z>Q@M>CWOlLb$5wj6?LXk&19HI3WtH*%@UUeHK&)6l`QpI#MskZbn-MBJo9Ra!em|y~hF{(zX5TgB(W=XrWuze(V#`MmY&p9wIZoy~mQ@ z7U`KrH>$(pPN=D*58rV%XpWw(ntV_Dw)8&6pX^QHM8L-j4X5CHkEq;bQ495p4Cv2D3b` zYrh14wTH!l2q;d$@anWw-S1Ra?H%hO zH{}9y8Sk7v#@h&}zP!2f?f>ShhbRhU2Yh6wXQXvnFN#+_^1)QB%a!1B*%;T~M7-{n zo8GL}xY>C&o4V@Gr0><~I!0*LtA9C{@Gmdf zN>%Son-+#z!bLT!vOrMHQE^ISktP4R7~P)DF5Cz&LDogSE-TZ8+ww;e^IcCwRwNtW zke3(z9K2|FYjL;u2ma;D{>@?@fBmzmrdRI$;tKy(@_m)v%^a

E1Zj(v~i@mJoE- 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

b#?lly957JU!JGPb#P?4Xy_^3|w$&lODZXjA*a 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�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 a@qY)i9{Bs%|GDjQf!*5wqJ!-F$NvCEMXo~t From 92efd82fabb7edad8b586267fbe8b83ca9499056 Mon Sep 17 00:00:00 2001 From: Patrick Kuo Date: Fri, 8 Dec 2017 17:27:23 +0000 Subject: [PATCH 15/17] Fix broken test (#2218) --- .../kotlin/net/corda/node/NodeKeystoreCheckTest.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt b/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt index 9ea387ec9e..ca1a3e9792 100644 --- a/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt @@ -6,7 +6,7 @@ import net.corda.core.internal.cert import net.corda.core.internal.div import net.corda.core.utilities.getOrThrow import net.corda.node.services.config.configureDevKeyAndTrustStores -import net.corda.nodeapi.config.SSLConfiguration +import net.corda.nodeapi.internal.config.SSLConfiguration import net.corda.nodeapi.internal.crypto.* import net.corda.testing.ALICE_NAME import net.corda.testing.driver.driver @@ -32,7 +32,7 @@ class NodeKeystoreCheckTest { val config = object : SSLConfiguration { override val keyStorePassword: String = keystorePassword override val trustStorePassword: String = keystorePassword - override val certificatesDirectory: Path = baseDirectory(ALICE_NAME.toString()) / "certificates" + override val certificatesDirectory: Path = baseDirectory(ALICE_NAME) / "certificates" } config.configureDevKeyAndTrustStores(ALICE_NAME) @@ -49,7 +49,7 @@ class NodeKeystoreCheckTest { val badRootKeyPair = Crypto.generateKeyPair() val badRoot = X509Utilities.createSelfSignedCACertificate(CordaX500Name("Bad Root", "Lodnon", "GB"), badRootKeyPair) val nodeCA = keystore.getCertificateAndKeyPair(X509Utilities.CORDA_CLIENT_CA, config.keyStorePassword) - val badNodeCACert = X509Utilities.createCertificate(CertificateType.CLIENT_CA, badRoot, badRootKeyPair, ALICE_NAME, nodeCA.keyPair.public) + val badNodeCACert = X509Utilities.createCertificate(CertificateType.NODE_CA, badRoot, badRootKeyPair, ALICE_NAME, nodeCA.keyPair.public) keystore.setKeyEntry(X509Utilities.CORDA_CLIENT_CA, nodeCA.keyPair.private, config.keyStorePassword.toCharArray(), arrayOf(badNodeCACert.cert, badRoot.cert)) keystore.save(config.nodeKeystore, config.keyStorePassword) From 991c59e7532fa22f45499d84a177599d467ac9a7 Mon Sep 17 00:00:00 2001 From: igor nitto Date: Fri, 8 Dec 2017 18:03:57 +0000 Subject: [PATCH 16/17] Stop granting NODE_USER full RPC permissions (#2098) --- .../messaging/ArtemisMessagingServer.kt | 2 -- .../corda/node/services/messaging/RPCServer.kt | 17 +++++------------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt index e5c79352f0..3506fbef9e 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt @@ -239,8 +239,6 @@ class ArtemisMessagingServer(private val config: NodeConfiguration, securityRoles["$INTERNAL_PREFIX#"] = setOf(nodeInternalRole) // Do not add any other roles here as it's only for the node securityRoles[P2P_QUEUE] = setOf(nodeInternalRole, restrictedRole(PEER_ROLE, send = true)) securityRoles[RPCApi.RPC_SERVER_QUEUE_NAME] = setOf(nodeInternalRole, restrictedRole(RPC_ROLE, send = true)) - // TODO: remove the NODE_USER role below once the webserver doesn't need it anymore. - securityRoles["${RPCApi.RPC_CLIENT_QUEUE_NAME_PREFIX}.$NODE_USER.#"] = setOf(nodeInternalRole) // Each RPC user must have its own role and its own queue. This prevents users accessing each other's queues // and stealing RPC responses. val rolesAdderOnLogin = RolesAdderOnLogin { username -> diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt index 2fe7a4b13d..1bcf4f5de2 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt @@ -357,9 +357,6 @@ class RPCServer( observableMap.cleanUp() } - // TODO remove this User once webserver doesn't need it - private val nodeUser = User(NODE_USER, NODE_USER, setOf()) - private fun ClientMessage.context(sessionId: Trace.SessionId): RpcAuthContext { val trace = Trace.newInstance(sessionId = sessionId) val externalTrace = externalTrace() @@ -372,15 +369,11 @@ class RPCServer( val validatedUser = message.getStringProperty(Message.HDR_VALIDATED_USER) ?: throw IllegalArgumentException("Missing validated user from the Artemis message") val targetLegalIdentity = message.getStringProperty(RPCApi.RPC_TARGET_LEGAL_IDENTITY)?.let(CordaX500Name.Companion::parse) ?: nodeLegalName // TODO switch userService based on targetLegalIdentity - val rpcUser = userService.getUser(validatedUser) - return if (rpcUser != null) { - Actor(Id(rpcUser.username), userService.id, targetLegalIdentity) to RpcPermissions(rpcUser.permissions) - } else if (CordaX500Name.parse(validatedUser) == nodeLegalName) { - // TODO remove this after Shell and WebServer will no longer need it - Actor(Id(nodeUser.username), userService.id, targetLegalIdentity) to RpcPermissions(nodeUser.permissions) - } else { - throw IllegalArgumentException("Validated user '$validatedUser' is not an RPC user nor the NODE user") - } + val rpcUser = userService.getUser(validatedUser) ?: + throw IllegalArgumentException("Validated user '$validatedUser' is not an RPC user") + return Pair( + Actor(Id(rpcUser.username), userService.id, targetLegalIdentity), + RpcPermissions(rpcUser.permissions)) } } From da38e6f67373ea939b10171eeca438b1d8a66969 Mon Sep 17 00:00:00 2001 From: igor nitto Date: Mon, 11 Dec 2017 08:39:09 +0000 Subject: [PATCH 17/17] Configurable authorization/authentication data sources [CORDA-827] (#2145) * Add support for external data source of access control data (RPC/Shell users credential and permissions), with optional in-memory caching. * Support password encoded with Apache Shiro fully reversible Modular Crypt Format. * Introduce 'security' field in Node configuration and related docsite page. --- build.gradle | 1 + .../net/corda/client/rpc/RPCStabilityTests.kt | 4 +- .../rpc/internal/RPCClientProxyHandler.kt | 5 +- .../corda/client/rpc/RPCPermissionsTests.kt | 98 +++--- docs/source/corda-nodes-index.rst | 1 + docs/source/node-auth-config.rst | 136 ++++++++ .../internal/config/ConfigUtilities.kt | 1 + node/build.gradle | 3 + .../kotlin/net/corda/node/SSHServerTest.kt | 3 +- .../node/services/UserAuthServiceTests.kt | 303 +++++++++++++++++ .../net/corda/node/internal/AbstractNode.kt | 6 +- .../kotlin/net/corda/node/internal/Node.kt | 21 +- .../node/internal/RpcAuthorisationProxy.kt | 12 +- .../internal/security/AuthorizingSubject.kt | 28 ++ .../corda/node/internal/security/Password.kt | 43 +++ .../internal/security/RPCSecurityManager.kt | 41 +++ .../security/RPCSecurityManagerImpl.kt | 308 ++++++++++++++++++ .../net/corda/node/services/RPCUserService.kt | 33 -- .../node/services/config/NodeConfiguration.kt | 83 ++++- .../messaging/ArtemisMessagingServer.kt | 31 +- .../services/messaging/RPCMessagingClient.kt | 6 +- .../node/services/messaging/RPCServer.kt | 17 +- .../node/services/messaging/RpcAuthContext.kt | 29 +- .../node/shell/CordaAuthenticationPlugin.kt | 21 +- .../net/corda/node/shell/InteractiveShell.kt | 32 +- .../net/corda/node/shell/RPCOpsWithContext.kt | 35 +- .../net/corda/node/CordaRPCOpsImplTest.kt | 18 +- ...rviceTest.kt => RPCSecurityManagerTest.kt} | 7 +- .../messaging/ArtemisMessagingTests.kt | 11 +- .../persistence/HibernateConfigurationTest.kt | 2 +- .../node/services/vault/VaultQueryTests.kt | 2 +- .../net/corda/testing/internal/RPCDriver.kt | 10 +- .../node/internal/security/PasswordTest.kt | 96 ++++++ 33 files changed, 1235 insertions(+), 212 deletions(-) create mode 100644 docs/source/node-auth-config.rst create mode 100644 node/src/integration-test/kotlin/net/corda/node/services/UserAuthServiceTests.kt create mode 100644 node/src/main/kotlin/net/corda/node/internal/security/AuthorizingSubject.kt create mode 100644 node/src/main/kotlin/net/corda/node/internal/security/Password.kt create mode 100644 node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManager.kt create mode 100644 node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManagerImpl.kt delete mode 100644 node/src/main/kotlin/net/corda/node/services/RPCUserService.kt rename node/src/test/kotlin/net/corda/node/services/{RPCUserServiceTest.kt => RPCSecurityManagerTest.kt} (68%) create mode 100644 testing/node-driver/src/test/java/net/corda/node/internal/security/PasswordTest.kt diff --git a/build.gradle b/build.gradle index c927d04987..b9d73bfdf5 100644 --- a/build.gradle +++ b/build.gradle @@ -49,6 +49,7 @@ buildscript { ext.beanutils_version = '1.9.3' ext.crash_version = 'cce5a00f114343c1145c1d7756e1dd6df3ea984e' ext.jsr305_version = constants.getProperty("jsr305Version") + ext.shiro_version = '1.4.0' ext.artifactory_plugin_version = constants.getProperty('artifactoryPluginVersion') // Update 121 is required for ObjectInputFilter and at time of writing 131 was latest: diff --git a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt index a6ff6eb80d..9970334fd8 100644 --- a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt +++ b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt @@ -63,8 +63,8 @@ class RPCStabilityTests { val executor = Executors.newScheduledThreadPool(1) fun startAndStop() { rpcDriver { - val server = startRpcServer(ops = DummyOps) - startRpcClient(server.get().broker.hostAndPort!!).get() + val server = startRpcServer(ops = DummyOps).get() + startRpcClient(server.broker.hostAndPort!!).get() } } repeat(5) { diff --git a/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClientProxyHandler.kt b/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClientProxyHandler.kt index a85a6342b2..9de4fd6afb 100644 --- a/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClientProxyHandler.kt +++ b/client/rpc/src/main/kotlin/net/corda/client/rpc/internal/RPCClientProxyHandler.kt @@ -22,7 +22,10 @@ import net.corda.core.internal.ThreadBox import net.corda.core.messaging.RPCOps import net.corda.core.serialization.SerializationContext import net.corda.core.serialization.serialize -import net.corda.core.utilities.* +import net.corda.core.utilities.Try +import net.corda.core.utilities.contextLogger +import net.corda.core.utilities.debug +import net.corda.core.utilities.getOrThrow import net.corda.nodeapi.ArtemisConsumer import net.corda.nodeapi.ArtemisProducer import net.corda.nodeapi.RPCApi diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt index c7c1e71346..0607541ba9 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPermissionsTests.kt @@ -1,8 +1,6 @@ package net.corda.client.rpc -import net.corda.core.messaging.CordaRPCOps import net.corda.core.messaging.RPCOps -import net.corda.node.services.Permissions.Companion.invokeRpc import net.corda.node.services.messaging.rpcContext import net.corda.nodeapi.internal.config.User import net.corda.testing.internal.RPCDriverDSL @@ -10,15 +8,12 @@ import net.corda.testing.internal.rpcDriver import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.Parameterized -import kotlin.reflect.KVisibility -import kotlin.reflect.full.declaredMemberFunctions import kotlin.test.assertFailsWith @RunWith(Parameterized::class) class RPCPermissionsTests : AbstractRPCTest() { companion object { const val DUMMY_FLOW = "StartFlow.net.corda.flows.DummyFlow" - const val OTHER_FLOW = "StartFlow.net.corda.flows.OtherFlow" const val ALL_ALLOWED = "ALL" } @@ -26,12 +21,21 @@ class RPCPermissionsTests : AbstractRPCTest() { * RPC operation. */ interface TestOps : RPCOps { - fun validatePermission(str: String) + fun validatePermission(method: String, target: String? = null) } class TestOpsImpl : TestOps { override val protocolVersion = 1 - override fun validatePermission(str: String) { rpcContext().requirePermission(str) } + override fun validatePermission(method: String, target: String?) { + val authorized = if (target == null) { + rpcContext().isPermitted(method) + } else { + rpcContext().isPermitted(method, target) + } + if (!authorized) { + throw PermissionException("RPC user not authorized") + } + } } /** @@ -46,9 +50,9 @@ class RPCPermissionsTests : AbstractRPCTest() { rpcDriver { val emptyUser = userOf("empty", emptySet()) val proxy = testProxyFor(emptyUser) - assertFailsWith(PermissionException::class, - "User ${emptyUser.username} should not be allowed to use $DUMMY_FLOW.", - { proxy.validatePermission(DUMMY_FLOW) }) + assertNotAllowed { + proxy.validatePermission("startFlowDynamic", "net.corda.flows.DummyFlow") + } } } @@ -57,7 +61,8 @@ class RPCPermissionsTests : AbstractRPCTest() { rpcDriver { val adminUser = userOf("admin", setOf(ALL_ALLOWED)) val proxy = testProxyFor(adminUser) - proxy.validatePermission(DUMMY_FLOW) + proxy.validatePermission("startFlowDynamic", "net.corda.flows.DummyFlow") + proxy.validatePermission("startTrackedFlowDynamic", "net.corda.flows.DummyFlow") } } @@ -66,7 +71,8 @@ class RPCPermissionsTests : AbstractRPCTest() { rpcDriver { val joeUser = userOf("joe", setOf(DUMMY_FLOW)) val proxy = testProxyFor(joeUser) - proxy.validatePermission(DUMMY_FLOW) + proxy.validatePermission("startFlowDynamic", "net.corda.flows.DummyFlow") + proxy.validatePermission("startTrackedFlowDynamic", "net.corda.flows.DummyFlow") } } @@ -75,36 +81,46 @@ class RPCPermissionsTests : AbstractRPCTest() { rpcDriver { val joeUser = userOf("joe", setOf(DUMMY_FLOW)) val proxy = testProxyFor(joeUser) - assertFailsWith(PermissionException::class, - "User ${joeUser.username} should not be allowed to use $OTHER_FLOW", - { proxy.validatePermission(OTHER_FLOW) }) - } - } - - @Test - fun `check ALL is implemented the correct way round`() { - rpcDriver { - val joeUser = userOf("joe", setOf(DUMMY_FLOW)) - val proxy = testProxyFor(joeUser) - assertFailsWith(PermissionException::class, - "Permission $ALL_ALLOWED should not do anything for User ${joeUser.username}", - { proxy.validatePermission(ALL_ALLOWED) }) - } - } - - @Test - fun `fine grained permissions are enforced`() { - val allPermissions = CordaRPCOps::class.declaredMemberFunctions.filter { it.visibility == KVisibility.PUBLIC }.map { invokeRpc(it) } - allPermissions.forEach { permission -> - rpcDriver { - val user = userOf("Mark", setOf(permission)) - val proxy = testProxyFor(user) - - proxy.validatePermission(permission) - (allPermissions - permission).forEach { notOwnedPermission -> - assertFailsWith(PermissionException::class, { proxy.validatePermission(notOwnedPermission) }) - } + assertNotAllowed { + proxy.validatePermission("startFlowDynamic", "net.corda.flows.OtherFlow") + } + assertNotAllowed { + proxy.validatePermission("startTrackedFlowDynamic", "net.corda.flows.OtherFlow") } } } + + @Test + fun `joe user is not allowed to call other RPC methods`() { + rpcDriver { + val joeUser = userOf("joe", setOf(DUMMY_FLOW)) + val proxy = testProxyFor(joeUser) + assertNotAllowed { + proxy.validatePermission("nodeInfo") + } + assertNotAllowed { + proxy.validatePermission("networkMapFeed") + } + } + } + + @Test + fun `checking invokeRpc permissions entitlements`() { + rpcDriver { + val joeUser = userOf("joe", setOf("InvokeRpc.networkMapFeed")) + val proxy = testProxyFor(joeUser) + assertNotAllowed { + proxy.validatePermission("nodeInfo") + } + assertNotAllowed { + proxy.validatePermission("startTrackedFlowDynamic", "net.corda.flows.OtherFlow") + } + proxy.validatePermission("networkMapFeed") + } + } + + private fun assertNotAllowed(action: () -> Unit) { + + assertFailsWith(PermissionException::class, "User should not be allowed to perform this action.", action) + } } diff --git a/docs/source/corda-nodes-index.rst b/docs/source/corda-nodes-index.rst index c1dfa0b508..061902b1aa 100644 --- a/docs/source/corda-nodes-index.rst +++ b/docs/source/corda-nodes-index.rst @@ -10,6 +10,7 @@ Corda nodes corda-configuration-file clientrpc shell + node-auth-config node-database node-administration out-of-process-verification \ No newline at end of file diff --git a/docs/source/node-auth-config.rst b/docs/source/node-auth-config.rst new file mode 100644 index 0000000000..5f9c54c3e4 --- /dev/null +++ b/docs/source/node-auth-config.rst @@ -0,0 +1,136 @@ +Access security settings +======================== + +Access to node functionalities via SSH or RPC is protected by an authentication and authorisation policy. + +The field ``security`` in ``node.conf`` exposes various sub-fields related to authentication/authorisation specifying: + + * The data source providing credentials and permissions for users (e.g.: a remote RDBMS) + * An optional password encryption method. + * An optional caching of users data from Node side. + +.. warning:: Specifying both ``rpcUsers`` and ``security`` fields in ``node.conf`` is considered an illegal setting and + rejected by the node at startup since ``rpcUsers`` is effectively deprecated in favour of ``security.authService``. + +**Example 1:** connect to remote RDBMS for credentials/permissions, with encrypted user passwords and +caching on node-side: + +.. container:: codeset + + .. sourcecode:: groovy + + security = { + authService = { + dataSource = { + type = "DB", + passwordEncryption = "SHIRO_1_CRYPT", + connection = { + jdbcUrl = "" + username = "" + password = "" + driverClassName = "" + } + } + options = { + cache = { + expiryTimeSecs = 120 + capacity = 10000 + } + } + } + } + +**Example 2:** list of user credentials and permissions hard-coded in ``node.conf`` + +.. container:: codeset + + .. sourcecode:: groovy + + security = { + authService = { + dataSource = { + type = "INMEMORY", + users =[ + { + username = "user1" + password = "password" + permissions = [ + "StartFlow.net.corda.flows.ExampleFlow1", + "StartFlow.net.corda.flows.ExampleFlow2", + ... + ] + }, + ... + ] + } + } + } + +Let us look in more details at the structure of ``security.authService``: + +Authentication/authorisation data +--------------------------------- + +The ``dataSource`` field defines the data provider supplying credentials and permissions for users. The ``type`` +subfield identify the type of data provider, currently supported one are: + + * **INMEMORY:** a list of user credentials and permissions hard-coded in configuration in the ``users`` field + (see example 2 above) + + * **DB:** An external RDBMS accessed via the JDBC connection described by ``connection``. The current implementation + expect the database to store data according to the following schema: + + - Table ``users`` containing columns ``username`` and ``password``. + The ``username`` column *must have unique values*. + - Table ``user_roles`` containing columns ``username`` and ``role_name`` associating a user to a set of *roles* + - Table ``roles_permissions`` containing columns ``role_name`` and ``permission`` associating a role to a set of + permission strings + + Note in particular how in the DB case permissions are assigned to _roles_ rather than individual users. + Also, there is no prescription on the SQL type of the columns (although in our tests we defined ``username`` and + ``role_name`` of SQL type ``VARCHAR`` and ``password`` of ``TEXT`` type) and it is allowed to put additional columns + besides the one expected by the implementation. + +Password encryption +------------------- + +Storing passwords in plain text is discouraged in production systems aiming for high security requirements. We support +reading passwords stored using the Apache Shiro fully reversible Modular Crypt Format, specified in the documentation +of ``org.apache.shiro.crypto.hash.format.Shiro1CryptFormat``. + +Password are assumed in plain format by default. To specify an encryption it is necessary to use the field: + +.. container:: codeset + + .. sourcecode:: groovy + + passwordEncryption = SHIRO_1_CRYPT + +Hash encrypted password based on the Shiro1CryptFormat can be produced with the `Apache Shiro Hasher tool `_ + +Cache +----- + +Adding a cache layer on top of an external provider of users credentials and permissions can significantly benefit +performances in some cases, with the disadvantage of introducing a latency in the propagation of changes to the data. + +Caching of users data is disabled by default, it can be enabled by defining the ``options.cache`` field, like seen in +the examples above: + +.. container:: codeset + + .. sourcecode:: groovy + + options = { + cache = { + expiryTimeSecs = 120 + capacity = 10000 + } + } + +This will enable an in-memory cache with maximum capacity (number of entries) and maximum life time of entries given by +respectively the values set by the ``capacity`` and ``expiryTimeSecs`` fields. + + + + diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt index 33a5e237ff..53a9ab7ce2 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/config/ConfigUtilities.kt @@ -80,6 +80,7 @@ private fun Config.getSingleValue(path: String, type: KType): Any? { URL::class -> URL(getString(path)) CordaX500Name::class -> CordaX500Name.parse(getString(path)) Properties::class -> getConfig(path).toProperties() + Config::class -> getConfig(path) else -> if (typeClass.java.isEnum) { parseEnum(typeClass.java, getString(path)) } else { diff --git a/node/build.gradle b/node/build.gradle index 91a5000f3d..2aeb7878d3 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -162,6 +162,9 @@ dependencies { // FastClasspathScanner: classpath scanning compile 'io.github.lukehutch:fast-classpath-scanner:2.0.21' + // Apache Shiro: authentication, authorization and session management. + compile "org.apache.shiro:shiro-core:${shiro_version}" + // Integration test helpers integrationTestCompile "junit:junit:$junit_version" integrationTestCompile "org.assertj:assertj-core:${assertj_version}" diff --git a/node/src/integration-test/kotlin/net/corda/node/SSHServerTest.kt b/node/src/integration-test/kotlin/net/corda/node/SSHServerTest.kt index 67b1996596..585f045eb9 100644 --- a/node/src/integration-test/kotlin/net/corda/node/SSHServerTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/SSHServerTest.kt @@ -20,6 +20,7 @@ import kotlin.test.assertTrue import kotlin.test.fail import org.assertj.core.api.Assertions.assertThat import java.util.regex.Pattern +import kotlin.reflect.jvm.jvmName class SSHServerTest { @@ -113,7 +114,7 @@ class SSHServerTest { channel.disconnect() session.disconnect() - assertThat(response).matches("(?s)User not permissioned with any of \\[[^]]*${flowNameEscaped}.*") + assertThat(response).matches("(?s)User not authorized to perform RPC call .*") } } diff --git a/node/src/integration-test/kotlin/net/corda/node/services/UserAuthServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/UserAuthServiceTests.kt new file mode 100644 index 0000000000..75b86c7d94 --- /dev/null +++ b/node/src/integration-test/kotlin/net/corda/node/services/UserAuthServiceTests.kt @@ -0,0 +1,303 @@ +package net.corda.node.services + +import co.paralleluniverse.fibers.Suspendable +import net.corda.client.rpc.CordaRPCClient +import net.corda.client.rpc.PermissionException +import net.corda.core.flows.FlowLogic +import net.corda.core.flows.InitiatingFlow +import net.corda.core.flows.StartableByRPC +import net.corda.core.messaging.CordaRPCOps +import net.corda.core.messaging.startFlow +import net.corda.finance.flows.CashIssueFlow +import net.corda.node.internal.Node +import net.corda.node.internal.StartedNode +import net.corda.node.services.config.PasswordEncryption +import net.corda.node.services.config.SecurityConfiguration +import net.corda.node.services.config.AuthDataSourceType +import net.corda.nodeapi.internal.config.User +import net.corda.nodeapi.internal.config.toConfig +import net.corda.testing.internal.NodeBasedTest +import net.corda.testing.* +import org.apache.activemq.artemis.api.core.ActiveMQSecurityException +import org.junit.After +import org.junit.Before +import org.junit.Test +import java.sql.DriverManager +import java.sql.Statement +import java.util.* +import kotlin.test.assertFailsWith + +abstract class UserAuthServiceTest : NodeBasedTest() { + + protected lateinit var node: StartedNode + protected lateinit var client: CordaRPCClient + + @Test + fun `login with correct credentials`() { + client.start("user", "foo") + } + + @Test + fun `login with wrong credentials`() { + client.start("user", "foo") + assertFailsWith( + ActiveMQSecurityException::class, + "Login with incorrect password should fail") { + client.start("user", "bar") + } + assertFailsWith( + ActiveMQSecurityException::class, + "Login with unknown username should fail") { + client.start("X", "foo") + } + } + + @Test + fun `check flow permissions are respected`() { + client.start("user", "foo").use { + val proxy = it.proxy + proxy.startFlowDynamic(DummyFlow::class.java) + proxy.startTrackedFlowDynamic(DummyFlow::class.java) + proxy.startFlow(::DummyFlow) + assertFailsWith( + PermissionException::class, + "This user should not be authorized to start flow `CashIssueFlow`") { + proxy.startFlowDynamic(CashIssueFlow::class.java) + } + assertFailsWith( + PermissionException::class, + "This user should not be authorized to start flow `CashIssueFlow`") { + proxy.startTrackedFlowDynamic(CashIssueFlow::class.java) + } + } + } + + @Test + fun `check permissions on RPC calls are respected`() { + client.start("user", "foo").use { + val proxy = it.proxy + proxy.stateMachinesFeed() + assertFailsWith( + PermissionException::class, + "This user should not be authorized to call 'nodeInfo'") { + proxy.nodeInfo() + } + } + } + + @StartableByRPC + @InitiatingFlow + class DummyFlow : FlowLogic() { + @Suspendable + override fun call() = Unit + } +} + +class UserAuthServiceEmbedded : UserAuthServiceTest() { + + private val rpcUser = User("user", "foo", permissions = setOf( + Permissions.startFlow(), + Permissions.invokeRpc("vaultQueryBy"), + Permissions.invokeRpc(CordaRPCOps::stateMachinesFeed), + Permissions.invokeRpc("vaultQueryByCriteria"))) + + @Before + fun setup() { + val securityConfig = SecurityConfiguration( + authService = SecurityConfiguration.AuthService.fromUsers(listOf(rpcUser))) + + val configOverrides = mapOf("security" to securityConfig.toConfig().root().unwrapped()) + node = startNode(ALICE_NAME, rpcUsers = emptyList(), configOverrides = configOverrides) + client = CordaRPCClient(node.internals.configuration.rpcAddress!!) + } +} + +class UserAuthServiceTestsJDBC : UserAuthServiceTest() { + + private val db = UsersDB( + name = "SecurityDataSourceTestDB", + users = listOf(UserAndRoles(username = "user", + password = "foo", + roles = listOf("default"))), + roleAndPermissions = listOf( + RoleAndPermissions( + role = "default", + permissions = listOf( + Permissions.startFlow(), + Permissions.invokeRpc("vaultQueryBy"), + Permissions.invokeRpc(CordaRPCOps::stateMachinesFeed), + Permissions.invokeRpc("vaultQueryByCriteria"))), + RoleAndPermissions( + role = "admin", + permissions = listOf("ALL") + ))) + + @Before + fun setup() { + val securityConfig = SecurityConfiguration( + authService = SecurityConfiguration.AuthService( + dataSource = SecurityConfiguration.AuthService.DataSource( + type = AuthDataSourceType.DB, + passwordEncryption = PasswordEncryption.NONE, + connection = Properties().apply { + setProperty("jdbcUrl", db.jdbcUrl) + setProperty("username", "") + setProperty("password", "") + setProperty("driverClassName", "org.h2.Driver") + } + ) + ) + ) + + val configOverrides = mapOf("security" to securityConfig.toConfig().root().unwrapped()) + node = startNode(ALICE_NAME, rpcUsers = emptyList(), configOverrides = configOverrides) + client = CordaRPCClient(node.internals.configuration.rpcAddress!!) + } + + @Test + fun `Add new users on-the-fly`() { + assertFailsWith( + ActiveMQSecurityException::class, + "Login with incorrect password should fail") { + client.start("user2", "bar") + } + + db.insert(UserAndRoles( + username = "user2", + password = "bar", + roles = listOf("default"))) + + client.start("user2", "bar") + } + + @Test + fun `Modify user permissions during RPC session`() { + db.insert(UserAndRoles( + username = "user3", + password = "bar", + roles = emptyList())) + + + client.start("user3", "bar").use { + val proxy = it.proxy + assertFailsWith( + PermissionException::class, + "This user should not be authorized to call 'nodeInfo'") { + proxy.stateMachinesFeed() + } + db.addRoleToUser("user3", "default") + proxy.stateMachinesFeed() + } + } + + @Test + fun `Revoke user permissions during RPC session`() { + db.insert(UserAndRoles( + username = "user4", + password = "test", + roles = listOf("default"))) + + client.start("user4", "test").use { + val proxy = it.proxy + proxy.stateMachinesFeed() + db.deleteUser("user4") + assertFailsWith( + PermissionException::class, + "This user should not be authorized to call 'nodeInfo'") { + proxy.stateMachinesFeed() + } + } + } + + @After + fun tearDown() { + db.close() + } +} + +private data class UserAndRoles(val username: String, val password: String, val roles: List) +private data class RoleAndPermissions(val role: String, val permissions: List) + +private class UsersDB : AutoCloseable { + + val jdbcUrl: String + + companion object { + val DB_CREATE_SCHEMA = """ + CREATE TABLE users (username VARCHAR(256), password TEXT); + CREATE TABLE user_roles (username VARCHAR(256), role_name VARCHAR(256)); + CREATE TABLE roles_permissions (role_name VARCHAR(256), permission TEXT); + """ + } + + fun insert(user: UserAndRoles) { + session { + it.execute("INSERT INTO users VALUES ('${user.username}', '${user.password}')") + for (role in user.roles) { + it.execute("INSERT INTO user_roles VALUES ('${user.username}', '${role}')") + } + } + } + + fun insert(roleAndPermissions: RoleAndPermissions) { + val (role, permissions) = roleAndPermissions + session { + for (permission in permissions) { + it.execute("INSERT INTO roles_permissions VALUES ('$role', '$permission')") + } + } + } + + fun addRoleToUser(username: String, role: String) { + session { + it.execute("INSERT INTO user_roles VALUES ('$username', '$role')") + } + } + + fun deleteRole(role: String) { + session { + it.execute("DELETE FROM role_permissions WHERE role_name = '$role'") + } + } + + fun deleteUser(username: String) { + session { + it.execute("DELETE FROM users WHERE username = '$username'") + it.execute("DELETE FROM user_roles WHERE username = '$username'") + } + } + + inline private fun session(statement: (Statement) -> Unit) { + DriverManager.getConnection(jdbcUrl).use { + it.autoCommit = false + it.createStatement().use(statement) + it.commit() + } + } + + constructor(name: String, + users: List = emptyList(), + roleAndPermissions: List = emptyList()) { + + jdbcUrl = "jdbc:h2:mem:${name};DB_CLOSE_DELAY=-1" + + session { + it.execute(DB_CREATE_SCHEMA) + } + + require(users.map { it.username }.toSet().size == users.size) { + "Duplicate username in input" + } + + users.forEach { insert(it) } + roleAndPermissions.forEach { insert(it) } + } + + override fun close() { + DriverManager.getConnection(jdbcUrl).use { + it.createStatement().use { + it.execute("DROP ALL OBJECTS") + } + } + } +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 9699318f73..00b24dba65 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -38,7 +38,7 @@ import net.corda.node.internal.cordapp.CordappProviderInternal import net.corda.node.services.ContractUpgradeHandler import net.corda.node.services.FinalityHandler import net.corda.node.services.NotaryChangeHandler -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.RPCSecurityManager import net.corda.node.services.api.* import net.corda.node.services.config.BFTSMaRtConfiguration import net.corda.node.services.config.NodeConfiguration @@ -137,7 +137,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, protected val _nodeReadyFuture = openFuture() protected val networkMapClient: NetworkMapClient? by lazy { configuration.compatibilityZoneURL?.let(::NetworkMapClient) } - lateinit var userService: RPCUserService get + lateinit var securityManager: RPCSecurityManager get /** Completes once the node has successfully registered with the network map service * or has loaded network map data from local database */ @@ -265,7 +265,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, protected abstract fun getRxIoScheduler(): Scheduler open fun startShell(rpcOps: CordaRPCOps) { - InteractiveShell.startShell(configuration, rpcOps, userService, _services.identityService, _services.database) + InteractiveShell.startShell(configuration, rpcOps, securityManager, _services.identityService, _services.database) } private fun initNodeInfo(networkMapCache: NetworkMapCacheBaseInternal, diff --git a/node/src/main/kotlin/net/corda/node/internal/Node.kt b/node/src/main/kotlin/net/corda/node/internal/Node.kt index 2ddba4a393..deca9b1922 100644 --- a/node/src/main/kotlin/net/corda/node/internal/Node.kt +++ b/node/src/main/kotlin/net/corda/node/internal/Node.kt @@ -2,6 +2,7 @@ package net.corda.node.internal import com.codahale.metrics.JmxReporter import net.corda.core.concurrent.CordaFuture +import net.corda.core.context.AuthServiceId import net.corda.core.internal.concurrent.openFuture import net.corda.core.internal.concurrent.thenMatch import net.corda.core.internal.uncheckedCast @@ -16,11 +17,10 @@ import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.contextLogger import net.corda.node.VersionInfo import net.corda.node.internal.cordapp.CordappLoader +import net.corda.node.internal.security.RPCSecurityManagerImpl import net.corda.node.serialization.KryoServerSerializationScheme -import net.corda.node.services.RPCUserServiceImpl import net.corda.node.services.api.SchemaService -import net.corda.node.services.config.NodeConfiguration -import net.corda.node.services.config.VerifierType +import net.corda.node.services.config.* import net.corda.node.services.messaging.* import net.corda.node.services.transactions.InMemoryTransactionVerifierService import net.corda.node.utilities.AddressUtils @@ -133,7 +133,12 @@ open class Node(configuration: NodeConfiguration, private var shutdownHook: ShutdownHook? = null override fun makeMessagingService(database: CordaPersistence, info: NodeInfo): MessagingService { - userService = RPCUserServiceImpl(configuration.rpcUsers) + // Construct security manager reading users data either from the 'security' config section + // if present or from rpcUsers list if the former is missing from config. + val securityManagerConfig = configuration.security?.authService ?: + SecurityConfiguration.AuthService.fromUsers(configuration.rpcUsers) + + securityManager = RPCSecurityManagerImpl(securityManagerConfig) val serverAddress = configuration.messagingServerAddress ?: makeLocalMessageBroker() val advertisedAddress = info.addresses.single() @@ -156,7 +161,7 @@ open class Node(configuration: NodeConfiguration, private fun makeLocalMessageBroker(): NetworkHostAndPort { with(configuration) { - messageBroker = ArtemisMessagingServer(this, p2pAddress.port, rpcAddress?.port, services.networkMapCache, userService) + messageBroker = ArtemisMessagingServer(this, p2pAddress.port, rpcAddress?.port, services.networkMapCache, securityManager) return NetworkHostAndPort("localhost", p2pAddress.port) } } @@ -208,7 +213,7 @@ open class Node(configuration: NodeConfiguration, // Start up the MQ clients. rpcMessagingClient.run { runOnStop += this::stop - start(rpcOps, userService) + start(rpcOps, securityManager) } verifierMessagingClient?.run { runOnStop += this::stop @@ -221,10 +226,10 @@ open class Node(configuration: NodeConfiguration, } /** - * If the node is persisting to an embedded H2 database, then expose this via TCP with a JDBC URL of the form: + * If the node is persisting to an embedded H2 database, then expose this via TCP with a DB URL of the form: * jdbc:h2:tcp://:/node * with username and password as per the DataSource connection details. The key element to enabling this support is to - * ensure that you specify a JDBC connection URL of the form jdbc:h2:file: in the node config and that you include + * ensure that you specify a DB connection URL of the form jdbc:h2:file: in the node config and that you include * the H2 option AUTO_SERVER_PORT set to the port you desire to use (0 will give a dynamically allocated port number) * but exclude the H2 option AUTO_SERVER=TRUE. * This is not using the H2 "automatic mixed mode" directly but leans on many of the underpinnings. For more details diff --git a/node/src/main/kotlin/net/corda/node/internal/RpcAuthorisationProxy.kt b/node/src/main/kotlin/net/corda/node/internal/RpcAuthorisationProxy.kt index 7a1e66f6ea..d2f0f8afc1 100644 --- a/node/src/main/kotlin/net/corda/node/internal/RpcAuthorisationProxy.kt +++ b/node/src/main/kotlin/net/corda/node/internal/RpcAuthorisationProxy.kt @@ -1,5 +1,6 @@ package net.corda.node.internal +import net.corda.client.rpc.PermissionException import net.corda.core.contracts.ContractState import net.corda.core.crypto.SecureHash import net.corda.core.flows.FlowLogic @@ -156,9 +157,12 @@ class RpcAuthorisationProxy(private val implementation: CordaRPCOps, private val private inline fun guard(methodName: String, action: () -> RESULT) = guard(methodName, emptyList(), action) // TODO change to KFunction reference after Kotlin fixes https://youtrack.jetbrains.com/issue/KT-12140 - private inline fun guard(methodName: String, args: List, action: () -> RESULT): RESULT { - - context().requireEitherPermission(permissionsAllowing.invoke(methodName, args)) - return action() + private inline fun guard(methodName: String, args: List>, action: () -> RESULT) : RESULT { + if (!context().isPermitted(methodName, *(args.map { it.name }.toTypedArray()))) { + throw PermissionException("User not authorized to perform RPC call $methodName with target $args") + } + else { + return action() + } } } \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/internal/security/AuthorizingSubject.kt b/node/src/main/kotlin/net/corda/node/internal/security/AuthorizingSubject.kt new file mode 100644 index 0000000000..d831582747 --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/internal/security/AuthorizingSubject.kt @@ -0,0 +1,28 @@ +package net.corda.node.internal.security + +/** + * Provides permission checking for the subject identified by the given [principal]. + */ +interface AuthorizingSubject { + + /** + * Identity of underlying subject + */ + val principal: String + + /** + * Determines if the underlying subject is entitled to perform a certain action, + * (e.g. an RPC invocation) represented by an [action] string followed by an + * optional list of arguments. + */ + fun isPermitted(action : String, vararg arguments : String) : Boolean +} + +/** + * An implementation of [AuthorizingSubject] permitting all actions + */ +class AdminSubject(override val principal : String) : AuthorizingSubject { + + override fun isPermitted(action: String, vararg arguments: String) = true + +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/internal/security/Password.kt b/node/src/main/kotlin/net/corda/node/internal/security/Password.kt new file mode 100644 index 0000000000..105addc8c1 --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/internal/security/Password.kt @@ -0,0 +1,43 @@ +package net.corda.node.internal.security + +import java.util.* + +class Password(valueRaw: CharArray) : AutoCloseable { + + constructor(value: String) : this(value.toCharArray()) + + private val internalValue = valueRaw.copyOf() + + val value: CharArray + get() = internalValue.copyOf() + + val valueAsString: String + get() = internalValue.joinToString("") + + override fun close() { + internalValue.indices.forEach { index -> + internalValue[index] = MASK + } + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as Password + + if (!Arrays.equals(internalValue, other.internalValue)) return false + + return true + } + + override fun hashCode(): Int { + return Arrays.hashCode(internalValue) + } + + override fun toString(): String = (0..5).map { MASK }.joinToString("") + + private companion object { + private const val MASK = '*' + } +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManager.kt b/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManager.kt new file mode 100644 index 0000000000..dafa069833 --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManager.kt @@ -0,0 +1,41 @@ +package net.corda.node.internal.security + +import net.corda.core.context.AuthServiceId +import org.apache.shiro.authc.AuthenticationException +import javax.security.auth.login.FailedLoginException + +/** + * Manage security of RPC users, providing logic for user authentication and authorization. + */ +interface RPCSecurityManager : AutoCloseable { + /** + * An identifier associated to this security service + */ + val id: AuthServiceId + + /** + * Perform user authentication from principal and password. Return an [AuthorizingSubject] containing + * the permissions of the user identified by the given [principal] if authentication via password succeeds, + * otherwise a [FailedLoginException] is thrown. + */ + fun authenticate(principal: String, password: Password): AuthorizingSubject + + /** + * Construct an [AuthorizingSubject] instance con permissions of the user associated to + * the given principal. Throws an exception if the principal cannot be resolved to a known user. + */ + fun buildSubject(principal: String): AuthorizingSubject +} + +/** + * Non-throwing version of authenticate, returning null instead of throwing in case of authentication failure + */ +fun RPCSecurityManager.tryAuthenticate(principal: String, password: Password): AuthorizingSubject? { + password.use { + return try { + authenticate(principal, password) + } catch (e: AuthenticationException) { + null + } + } +} diff --git a/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManagerImpl.kt b/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManagerImpl.kt new file mode 100644 index 0000000000..add690620e --- /dev/null +++ b/node/src/main/kotlin/net/corda/node/internal/security/RPCSecurityManagerImpl.kt @@ -0,0 +1,308 @@ +package net.corda.node.internal.security + +import com.google.common.cache.CacheBuilder +import com.google.common.cache.Cache +import com.google.common.primitives.Ints +import com.zaxxer.hikari.HikariConfig +import com.zaxxer.hikari.HikariDataSource +import net.corda.core.context.AuthServiceId +import net.corda.core.utilities.loggerFor +import net.corda.node.services.config.PasswordEncryption +import net.corda.node.services.config.SecurityConfiguration +import net.corda.node.services.config.AuthDataSourceType +import net.corda.nodeapi.internal.config.User +import org.apache.shiro.authc.* +import org.apache.shiro.authc.credential.PasswordMatcher +import org.apache.shiro.authc.credential.SimpleCredentialsMatcher +import org.apache.shiro.authz.AuthorizationInfo +import org.apache.shiro.authz.Permission +import org.apache.shiro.authz.SimpleAuthorizationInfo +import org.apache.shiro.authz.permission.DomainPermission +import org.apache.shiro.authz.permission.PermissionResolver +import org.apache.shiro.cache.CacheManager +import org.apache.shiro.mgt.DefaultSecurityManager +import org.apache.shiro.realm.AuthorizingRealm +import org.apache.shiro.realm.jdbc.JdbcRealm +import org.apache.shiro.subject.PrincipalCollection +import org.apache.shiro.subject.SimplePrincipalCollection +import javax.security.auth.login.FailedLoginException +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.TimeUnit +private typealias AuthServiceConfig = SecurityConfiguration.AuthService + +/** + * Default implementation of [RPCSecurityManager] adapting + * [org.apache.shiro.mgt.SecurityManager] + */ +class RPCSecurityManagerImpl(config: AuthServiceConfig) : RPCSecurityManager { + + override val id = config.id + private val manager: DefaultSecurityManager + + init { + manager = buildImpl(config) + } + + override fun close() { + manager.destroy() + } + + @Throws(FailedLoginException::class) + override fun authenticate(principal: String, password: Password): AuthorizingSubject { + password.use { + val authToken = UsernamePasswordToken(principal, it.value) + try { + manager.authenticate(authToken) + } catch (authcException: AuthenticationException) { + throw FailedLoginException(authcException.toString()) + } + return ShiroAuthorizingSubject( + subjectId = SimplePrincipalCollection(principal, id.value), + manager = manager) + } + } + + override fun buildSubject(principal: String): AuthorizingSubject = + ShiroAuthorizingSubject( + subjectId = SimplePrincipalCollection(principal, id.value), + manager = manager) + + + companion object { + + private val logger = loggerFor() + + /** + * Instantiate RPCSecurityManager initialised with users data from a list of [User] + */ + fun fromUserList(id: AuthServiceId, users: List) = + RPCSecurityManagerImpl( + AuthServiceConfig.fromUsers(users).copy(id = id)) + + // Build internal Shiro securityManager instance + private fun buildImpl(config: AuthServiceConfig): DefaultSecurityManager { + val realm = when (config.dataSource.type) { + AuthDataSourceType.DB -> { + logger.info("Constructing DB-backed security data source: ${config.dataSource.connection}") + NodeJdbcRealm(config.dataSource) + } + AuthDataSourceType.INMEMORY -> { + logger.info("Constructing realm from list of users in config ${config.dataSource.users!!}") + InMemoryRealm(config.dataSource.users, config.id.value, config.dataSource.passwordEncryption) + } + } + return DefaultSecurityManager(realm).also { + // Setup optional cache layer if configured + it.cacheManager = config.options?.cache?.let { + GuavaCacheManager( + timeToLiveSeconds = it.expiryTimeInSecs, + maxSize = it.capacity) + } + } + } + } +} + +/** + * Provide a representation of RPC permissions based on Apache Shiro permissions framework. + * A permission represents a set of actions: for example, the set of all RPC invocations, or the set + * of RPC invocations acting on a given class of Flows in input. A permission `implies` another one if + * its set of actions contains the set of actions in the other one. In Apache Shiro, permissions are + * represented by instances of the [Permission] interface which offers a single method: [implies], to + * test if the 'x implies y' binary predicate is satisfied. + */ +private class RPCPermission : DomainPermission { + + /** + * Helper constructor directly setting actions and target field + * + * @param methods Set of allowed RPC methods + * @param target An optional "target" type on which methods act + */ + constructor(methods: Set, target: String? = null) : super(methods, target?.let { setOf(it) }) + + + /** + * Default constructor instantiate an "ALL" permission + */ + constructor() : super() +} + +/** + * A [org.apache.shiro.authz.permission.PermissionResolver] implementation for RPC permissions. + * Provides a method to construct an [RPCPermission] instance from its string representation + * in the form used by a Node admin. + * + * Currently valid permission strings have the forms: + * + * - `ALL`: allowing all type of RPC calls + * + * - `InvokeRpc.$RPCMethodName`: allowing to call a given RPC method without restrictions on its arguments. + * + * - `StartFlow.$FlowClassName`: allowing to call a `startFlow*` RPC method targeting a Flow instance + * of a given class + * + */ +private object RPCPermissionResolver : PermissionResolver { + + private val SEPARATOR = '.' + private val ACTION_START_FLOW = "startflow" + private val ACTION_INVOKE_RPC = "invokerpc" + private val ACTION_ALL = "all" + + private val FLOW_RPC_CALLS = setOf("startFlowDynamic", "startTrackedFlowDynamic") + + override fun resolvePermission(representation: String): Permission { + + val action = representation.substringBefore(SEPARATOR).toLowerCase() + when (action) { + ACTION_INVOKE_RPC -> { + val rpcCall = representation.substringAfter(SEPARATOR) + require(representation.count { it == SEPARATOR } == 1) { + "Malformed permission string" + } + return RPCPermission(setOf(rpcCall)) + } + ACTION_START_FLOW -> { + val targetFlow = representation.substringAfter(SEPARATOR) + require(targetFlow.isNotEmpty()) { + "Missing target flow after StartFlow" + } + return RPCPermission(FLOW_RPC_CALLS, targetFlow) + } + ACTION_ALL -> { + // Leaving empty set of targets and actions to match everything + return RPCPermission() + } + else -> throw IllegalArgumentException("Unkwnow permission action specifier: $action") + } + } +} + +private class ShiroAuthorizingSubject( + private val subjectId: PrincipalCollection, + private val manager: DefaultSecurityManager) : AuthorizingSubject { + + override val principal get() = subjectId.primaryPrincipal.toString() + + override fun isPermitted(action: String, vararg arguments: String) = + manager.isPermitted(subjectId, RPCPermission(setOf(action), arguments.firstOrNull())) +} + +private fun buildCredentialMatcher(type: PasswordEncryption) = when (type) { + PasswordEncryption.NONE -> SimpleCredentialsMatcher() + PasswordEncryption.SHIRO_1_CRYPT -> PasswordMatcher() +} + +private class InMemoryRealm(users: List, + realmId: String, + passwordEncryption: PasswordEncryption = PasswordEncryption.NONE) : AuthorizingRealm() { + + private val authorizationInfoByUser: Map + private val authenticationInfoByUser: Map + + init { + permissionResolver = RPCPermissionResolver + users.forEach { + require(it.username.matches("\\w+".toRegex())) { + "Username ${it.username} contains invalid characters" + } + } + val resolvePermission = { s: String -> permissionResolver.resolvePermission(s) } + authorizationInfoByUser = users.associate { + it.username to SimpleAuthorizationInfo().apply { + objectPermissions = it.permissions.map { resolvePermission(it) }.toSet() + roles = emptySet() + stringPermissions = emptySet() + } + } + authenticationInfoByUser = users.associate { + it.username to SimpleAuthenticationInfo().apply { + credentials = it.password + principals = SimplePrincipalCollection(it.username, realmId) + } + } + credentialsMatcher = buildCredentialMatcher(passwordEncryption) + } + + // Methods from AuthorizingRealm interface used by Shiro to query + // for authentication/authorization data for a given user + override fun doGetAuthenticationInfo(token: AuthenticationToken) = + authenticationInfoByUser[token.principal as String] + + override fun doGetAuthorizationInfo(principals: PrincipalCollection) = + authorizationInfoByUser[principals.primaryPrincipal as String] +} + +private class NodeJdbcRealm(config: SecurityConfiguration.AuthService.DataSource) : JdbcRealm() { + + init { + credentialsMatcher = buildCredentialMatcher(config.passwordEncryption) + setPermissionsLookupEnabled(true) + dataSource = HikariDataSource(HikariConfig(config.connection!!)) + permissionResolver = RPCPermissionResolver + } +} + +private typealias ShiroCache = org.apache.shiro.cache.Cache + +/** + * Adapts a [com.google.common.cache.Cache] to a [org.apache.shiro.cache.Cache] implementation. + */ +private fun Cache.toShiroCache(name: String) = object : ShiroCache { + + val name = name + private val impl = this@toShiroCache + + override operator fun get(key: K) = impl.getIfPresent(key) + + override fun put(key: K, value: V): V? { + val lastValue = get(key) + impl.put(key, value) + return lastValue + } + + override fun remove(key: K): V? { + val lastValue = get(key) + impl.invalidate(key) + return lastValue + } + + override fun clear() { + impl.invalidateAll() + } + + override fun size() = Ints.checkedCast(impl.size()) + override fun keys() = impl.asMap().keys + override fun values() = impl.asMap().values + override fun toString() = "Guava cache adapter [$impl]" +} + +/** + * Implementation of [org.apache.shiro.cache.CacheManager] based on + * cache implementation in [com.google.common.cache] + */ +private class GuavaCacheManager(val maxSize: Long, + val timeToLiveSeconds: Long) : CacheManager { + + private val instances = ConcurrentHashMap>() + + override fun getCache(name: String): ShiroCache { + val result = instances[name] ?: buildCache(name) + instances.putIfAbsent(name, result) + return result as ShiroCache + } + + private fun buildCache(name: String) : ShiroCache { + logger.info("Constructing cache '$name' with maximumSize=$maxSize, TTL=${timeToLiveSeconds}s") + return CacheBuilder.newBuilder() + .expireAfterWrite(timeToLiveSeconds, TimeUnit.SECONDS) + .maximumSize(maxSize) + .build() + .toShiroCache(name) + } + + companion object { + private val logger = loggerFor() + } +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/services/RPCUserService.kt b/node/src/main/kotlin/net/corda/node/services/RPCUserService.kt deleted file mode 100644 index 3a7bbdcb9f..0000000000 --- a/node/src/main/kotlin/net/corda/node/services/RPCUserService.kt +++ /dev/null @@ -1,33 +0,0 @@ -package net.corda.node.services - -import net.corda.core.context.AuthServiceId -import net.corda.nodeapi.internal.config.User - -/** - * Service for retrieving [User] objects representing RPC users who are authorised to use the RPC system. A [User] - * contains their login username and password along with a set of permissions for RPC services they are allowed access - * to. These permissions are represented as [String]s to allow RPC implementations to add their own permissioning. - */ -interface RPCUserService { - - fun getUser(username: String): User? - val users: List - - val id: AuthServiceId -} - -// TODO Store passwords as salted hashes -// TODO Or ditch this and consider something like Apache Shiro -// TODO Need access to permission checks from inside flows and at other point during audit checking. -class RPCUserServiceImpl(override val users: List) : RPCUserService { - - override val id: AuthServiceId = AuthServiceId("NODE_FILE_CONFIGURATION") - - init { - users.forEach { - require(it.username.matches("\\w+".toRegex())) { "Username ${it.username} contains invalid characters" } - } - } - - override fun getUser(username: String): User? = users.find { it.username == username } -} diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index 33ccd2bf0f..56dbcdfe7a 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -1,6 +1,7 @@ package net.corda.node.services.config import com.typesafe.config.Config +import net.corda.core.context.AuthServiceId import net.corda.core.identity.CordaX500Name import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.seconds @@ -21,6 +22,7 @@ interface NodeConfiguration : NodeSSLConfiguration { val exportJMXto: String val dataSourceProperties: Properties val rpcUsers: List + val security: SecurityConfiguration? val devMode: Boolean val devModeOptions: DevModeOptions? val compatibilityZoneURL: URL? @@ -93,6 +95,7 @@ data class NodeConfigurationImpl( override val dataSourceProperties: Properties, override val compatibilityZoneURL: URL? = null, override val rpcUsers: List, + override val security : SecurityConfiguration? = null, override val verifierType: VerifierType, // TODO typesafe config supports the notion of durations. Make use of that by mapping it to java.time.Duration. // Then rename this to messageRedeliveryDelay and make it of type Duration @@ -115,6 +118,7 @@ data class NodeConfigurationImpl( override val sshd: SSHDConfiguration? = null, override val database: DatabaseConfig = DatabaseConfig(initialiseSchema = devMode, exportHibernateJMXStatistics = devMode) ) : NodeConfiguration { + override val exportJMXto: String get() = "http" init { @@ -122,6 +126,9 @@ data class NodeConfigurationImpl( require(!useTestClock || devMode) { "Cannot use test clock outside of dev mode" } require(devModeOptions == null || devMode) { "Cannot use devModeOptions outside of dev mode" } require(myLegalName.commonName == null) { "Common name must be null: $myLegalName" } + require(security == null || rpcUsers.isEmpty()) { + "Cannot specify both 'rpcUsers' and 'security' in configuration" + } } } @@ -149,4 +156,78 @@ data class CertChainPolicyConfig(val role: String, private val policy: CertChain } } -data class SSHDConfiguration(val port: Int) \ No newline at end of file +data class SSHDConfiguration(val port: Int) + +// Supported types of authentication/authorization data providers +enum class AuthDataSourceType { + // External RDBMS + DB, + + // Static dataset hard-coded in config + INMEMORY +} + +// Password encryption scheme +enum class PasswordEncryption { + + // Password stored in clear + NONE, + + // Password salt-hashed using Apache Shiro flexible encryption format + // [org.apache.shiro.crypto.hash.format.Shiro1CryptFormat] + SHIRO_1_CRYPT +} + +// Subset of Node configuration related to security aspects +data class SecurityConfiguration(val authService: SecurityConfiguration.AuthService) { + + // Configure RPC/Shell users authentication/authorization service + data class AuthService(val dataSource: AuthService.DataSource, + val id: AuthServiceId = defaultAuthServiceId(dataSource.type), + val options: AuthService.Options? = null) { + + init { + require(!(dataSource.type == AuthDataSourceType.INMEMORY && + options?.cache != null)) { + "No cache supported for INMEMORY data provider" + } + } + + // Optional components: cache + data class Options(val cache: Options.Cache?) { + + // Cache parameters + data class Cache(val expiryTimeInSecs: Long, val capacity: Long) + + } + + // Provider of users credentials and permissions data + data class DataSource(val type: AuthDataSourceType, + val passwordEncryption: PasswordEncryption = PasswordEncryption.NONE, + val connection: Properties? = null, + val users: List? = null) { + init { + when (type) { + AuthDataSourceType.INMEMORY -> require(users != null && connection == null) + AuthDataSourceType.DB -> require(users == null && connection != null) + } + } + } + + companion object { + // If unspecified, we assign an AuthServiceId by default based on the + // underlying data provider + fun defaultAuthServiceId(type: AuthDataSourceType) = when (type) { + AuthDataSourceType.INMEMORY -> AuthServiceId("NODE_CONFIG") + AuthDataSourceType.DB -> AuthServiceId("REMOTE_DATABASE") + } + + fun fromUsers(users: List) = AuthService( + dataSource = DataSource( + type = AuthDataSourceType.INMEMORY, + users = users, + passwordEncryption = PasswordEncryption.NONE), + id = AuthServiceId("NODE_CONFIG")) + } + } +} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt index 3506fbef9e..5634ca74ed 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt @@ -12,9 +12,13 @@ import net.corda.core.node.NodeInfo import net.corda.core.node.services.NetworkMapCache import net.corda.core.node.services.NetworkMapCache.MapChange import net.corda.core.serialization.SingletonSerializeAsToken -import net.corda.core.utilities.* +import net.corda.core.utilities.NetworkHostAndPort +import net.corda.core.utilities.contextLogger +import net.corda.core.utilities.debug +import net.corda.core.utilities.parsePublicKeyBase58 import net.corda.node.internal.Node -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.Password +import net.corda.node.internal.security.RPCSecurityManager import net.corda.node.services.config.NodeConfiguration import net.corda.node.services.messaging.NodeLoginModule.Companion.NODE_ROLE import net.corda.node.services.messaging.NodeLoginModule.Companion.PEER_ROLE @@ -25,13 +29,13 @@ import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_CLIENT_TLS import net.corda.nodeapi.internal.crypto.X509Utilities.CORDA_ROOT_CA import net.corda.nodeapi.internal.crypto.loadKeyStore import net.corda.nodeapi.* +import net.corda.nodeapi.internal.ArtemisMessagingComponent.ArtemisPeerAddress import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.INTERNAL_PREFIX import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NOTIFICATIONS_ADDRESS import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2P_QUEUE import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.PEERS_PREFIX import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.PEER_USER -import net.corda.nodeapi.internal.ArtemisMessagingComponent.ArtemisPeerAddress import net.corda.nodeapi.internal.ArtemisMessagingComponent.NodeAddress import net.corda.nodeapi.internal.requireOnDefaultFileSystem import org.apache.activemq.artemis.api.core.SimpleString @@ -97,7 +101,7 @@ class ArtemisMessagingServer(private val config: NodeConfiguration, private val p2pPort: Int, val rpcPort: Int?, val networkMapCache: NetworkMapCache, - val userService: RPCUserService) : SingletonSerializeAsToken() { + val securityManager: RPCSecurityManager) : SingletonSerializeAsToken() { companion object { private val log = contextLogger() /** 10 MiB maximum allowed file size for attachments, including message headers. TODO: acquire this value from Network Map when supported. */ @@ -234,7 +238,7 @@ class ArtemisMessagingServer(private val config: NodeConfiguration, * 3. RPC users. These are only given sufficient access to perform RPC with us. * 4. Verifiers. These are given read access to the verification request queue and write access to the response queue. */ - private fun ConfigurationImpl.configureAddressSecurity() : Pair { + private fun ConfigurationImpl.configureAddressSecurity(): Pair { val nodeInternalRole = Role(NODE_ROLE, true, true, true, true, true, true, true, true) securityRoles["$INTERNAL_PREFIX#"] = setOf(nodeInternalRole) // Do not add any other roles here as it's only for the node securityRoles[P2P_QUEUE] = setOf(nodeInternalRole, restrictedRole(PEER_ROLE, send = true)) @@ -285,7 +289,7 @@ class ArtemisMessagingServer(private val config: NodeConfiguration, override fun getAppConfigurationEntry(name: String): Array { val options = mapOf( LoginListener::javaClass.name to loginListener, - RPCUserService::class.java.name to userService, + RPCSecurityManager::class.java.name to securityManager, NodeLoginModule.CERT_CHAIN_CHECKS_OPTION_NAME to certChecks) return arrayOf(AppConfigurationEntry(name, REQUIRED, options)) } @@ -560,7 +564,7 @@ class NodeLoginModule : LoginModule { private var loginSucceeded: Boolean = false private lateinit var subject: Subject private lateinit var callbackHandler: CallbackHandler - private lateinit var userService: RPCUserService + private lateinit var securityManager: RPCSecurityManager private lateinit var loginListener: LoginListener private lateinit var peerCertCheck: CertificateChainCheckPolicy.Check private lateinit var nodeCertCheck: CertificateChainCheckPolicy.Check @@ -570,7 +574,7 @@ class NodeLoginModule : LoginModule { override fun initialize(subject: Subject, callbackHandler: CallbackHandler, sharedState: Map, options: Map) { this.subject = subject this.callbackHandler = callbackHandler - userService = options[RPCUserService::class.java.name] as RPCUserService + securityManager = options[RPCSecurityManager::class.java.name] as RPCSecurityManager loginListener = options[LoginListener::javaClass.name] as LoginListener val certChainChecks: Map = uncheckedCast(options[CERT_CHAIN_CHECKS_OPTION_NAME]) peerCertCheck = certChainChecks[PEER_ROLE]!! @@ -601,7 +605,7 @@ class NodeLoginModule : LoginModule { PEER_ROLE -> authenticatePeer(certificates) NODE_ROLE -> authenticateNode(certificates) VERIFIER_ROLE -> authenticateVerifier(certificates) - RPC_ROLE -> authenticateRpcUser(password, username) + RPC_ROLE -> authenticateRpcUser(username, Password(password)) else -> throw FailedLoginException("Peer does not belong on our network") } principals += UserPrincipal(validatedUser) @@ -632,13 +636,8 @@ class NodeLoginModule : LoginModule { return certificates.first().subjectDN.name } - private fun authenticateRpcUser(password: String, username: String): String { - val rpcUser = userService.getUser(username) ?: throw FailedLoginException("User does not exist") - if (password != rpcUser.password) { - // TODO Switch to hashed passwords - // TODO Retrieve client IP address to include in exception message - throw FailedLoginException("Password for user $username does not match") - } + private fun authenticateRpcUser(username: String, password: Password): String { + securityManager.authenticate(username, password) loginListener(username) principals += RolePrincipal(RPC_ROLE) // This enables the RPC client to send requests principals += RolePrincipal("${RPCApi.RPC_CLIENT_QUEUE_NAME_PREFIX}.$username") // This enables the RPC client to receive responses diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/RPCMessagingClient.kt b/node/src/main/kotlin/net/corda/node/services/messaging/RPCMessagingClient.kt index 4fd197c307..b45ad4adcc 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/RPCMessagingClient.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/RPCMessagingClient.kt @@ -4,7 +4,7 @@ import net.corda.core.identity.CordaX500Name import net.corda.core.messaging.RPCOps import net.corda.core.serialization.SingletonSerializeAsToken import net.corda.core.utilities.NetworkHostAndPort -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.RPCSecurityManager import net.corda.nodeapi.internal.config.SSLConfiguration import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER import net.corda.nodeapi.internal.crypto.X509Utilities @@ -16,10 +16,10 @@ class RPCMessagingClient(private val config: SSLConfiguration, serverAddress: Ne private val artemis = ArtemisMessagingClient(config, serverAddress) private var rpcServer: RPCServer? = null - fun start(rpcOps: RPCOps, userService: RPCUserService) = synchronized(this) { + fun start(rpcOps: RPCOps, securityManager: RPCSecurityManager) = synchronized(this) { val locator = artemis.start().sessionFactory.serverLocator val myCert = loadKeyStore(config.sslKeystore, config.keyStorePassword).getX509Certificate(X509Utilities.CORDA_CLIENT_TLS) - rpcServer = RPCServer(rpcOps, NODE_USER, NODE_USER, locator, userService, CordaX500Name.build(myCert.subjectX500Principal)) + rpcServer = RPCServer(rpcOps, NODE_USER, NODE_USER, locator, securityManager, CordaX500Name.build(myCert.subjectX500Principal)) } fun start2(serverControl: ActiveMQServerControl) = synchronized(this) { diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt index 1bcf4f5de2..0e06674aa0 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/RPCServer.kt @@ -26,11 +26,10 @@ import net.corda.core.serialization.SerializationContext import net.corda.core.serialization.SerializationDefaults.RPC_SERVER_CONTEXT import net.corda.core.serialization.deserialize import net.corda.core.utilities.* -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.AuthorizingSubject +import net.corda.node.internal.security.RPCSecurityManager import net.corda.node.services.logging.pushToLoggingContext import net.corda.nodeapi.* -import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER -import net.corda.nodeapi.internal.config.User import org.apache.activemq.artemis.api.core.Message import org.apache.activemq.artemis.api.core.SimpleString import org.apache.activemq.artemis.api.core.client.ActiveMQClient.DEFAULT_ACK_BATCH_SIZE @@ -85,7 +84,7 @@ class RPCServer( private val rpcServerUsername: String, private val rpcServerPassword: String, private val serverLocator: ServerLocator, - private val userService: RPCUserService, + private val securityManager: RPCSecurityManager, private val nodeLegalName: CordaX500Name, private val rpcConfiguration: RPCServerConfiguration = RPCServerConfiguration.default ) { @@ -213,6 +212,7 @@ class RPCServer( reaperScheduledFuture?.cancel(false) rpcExecutor?.shutdownNow() reaperExecutor?.shutdownNow() + securityManager.close() sessionAndConsumers.forEach { it.sessionFactory.close() } @@ -365,15 +365,10 @@ class RPCServer( return RpcAuthContext(InvocationContext.rpc(rpcActor.first, trace, externalTrace, impersonatedActor), rpcActor.second) } - private fun actorFrom(message: ClientMessage): Pair { + private fun actorFrom(message: ClientMessage): Pair { val validatedUser = message.getStringProperty(Message.HDR_VALIDATED_USER) ?: throw IllegalArgumentException("Missing validated user from the Artemis message") val targetLegalIdentity = message.getStringProperty(RPCApi.RPC_TARGET_LEGAL_IDENTITY)?.let(CordaX500Name.Companion::parse) ?: nodeLegalName - // TODO switch userService based on targetLegalIdentity - val rpcUser = userService.getUser(validatedUser) ?: - throw IllegalArgumentException("Validated user '$validatedUser' is not an RPC user") - return Pair( - Actor(Id(rpcUser.username), userService.id, targetLegalIdentity), - RpcPermissions(rpcUser.permissions)) + return Pair(Actor(Id(validatedUser), securityManager.id, targetLegalIdentity), securityManager.buildSubject(validatedUser)) } } diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/RpcAuthContext.kt b/node/src/main/kotlin/net/corda/node/services/messaging/RpcAuthContext.kt index 58cd73de22..dfa50b16d7 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/RpcAuthContext.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/RpcAuthContext.kt @@ -1,30 +1,9 @@ package net.corda.node.services.messaging -import net.corda.client.rpc.PermissionException import net.corda.core.context.InvocationContext -import net.corda.node.services.Permissions -import net.corda.nodeapi.internal.ArtemisMessagingComponent +import net.corda.node.internal.security.AuthorizingSubject -data class RpcAuthContext(val invocation: InvocationContext, val grantedPermissions: RpcPermissions) { +data class RpcAuthContext(val invocation: InvocationContext, + private val authorizer: AuthorizingSubject) + : AuthorizingSubject by authorizer - fun requirePermission(permission: String) = requireEitherPermission(setOf(permission)) - - fun requireEitherPermission(permissions: Set): RpcAuthContext { - - // TODO remove the NODE_USER condition once webserver and shell won't need it anymore - if (invocation.principal().name != ArtemisMessagingComponent.NODE_USER && !grantedPermissions.coverAny(permissions)) { - throw PermissionException("User not permissioned with any of $permissions, permissions are ${this.grantedPermissions}.") - } - return this - } -} - -data class RpcPermissions(private val values: Set = emptySet()) { - - companion object { - val NONE = RpcPermissions() - val ALL = RpcPermissions(setOf("ALL")) - } - - fun coverAny(permissions: Set) = !values.intersect(permissions + Permissions.all()).isEmpty() -} \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/shell/CordaAuthenticationPlugin.kt b/node/src/main/kotlin/net/corda/node/shell/CordaAuthenticationPlugin.kt index 61fbf90f56..7dbdc8e52f 100644 --- a/node/src/main/kotlin/net/corda/node/shell/CordaAuthenticationPlugin.kt +++ b/node/src/main/kotlin/net/corda/node/shell/CordaAuthenticationPlugin.kt @@ -4,31 +4,30 @@ import net.corda.core.context.Actor import net.corda.core.context.InvocationContext import net.corda.core.identity.CordaX500Name import net.corda.core.messaging.CordaRPCOps -import net.corda.node.services.RPCUserService -import net.corda.node.services.messaging.RpcPermissions +import net.corda.node.internal.security.Password +import net.corda.node.internal.security.RPCSecurityManager +import net.corda.node.internal.security.tryAuthenticate import org.crsh.auth.AuthInfo import org.crsh.auth.AuthenticationPlugin import org.crsh.plugin.CRaSHPlugin -class CordaAuthenticationPlugin(val rpcOps:CordaRPCOps, val userService:RPCUserService, val nodeLegalName:CordaX500Name) : CRaSHPlugin>(), AuthenticationPlugin { +class CordaAuthenticationPlugin(private val rpcOps: CordaRPCOps, private val securityManager: RPCSecurityManager, private val nodeLegalName: CordaX500Name) : CRaSHPlugin>(), AuthenticationPlugin { override fun getImplementation(): AuthenticationPlugin = this override fun getName(): String = "corda" override fun authenticate(username: String?, credential: String?): AuthInfo { + if (username == null || credential == null) { return AuthInfo.UNSUCCESSFUL } - - val user = userService.getUser(username) - - if (user != null && user.password == credential) { - val actor = Actor(Actor.Id(username), userService.id, nodeLegalName) - return CordaSSHAuthInfo(true, makeRPCOpsWithContext(rpcOps, InvocationContext.rpc(actor), RpcPermissions(user.permissions))) + val authorizingSubject = securityManager.tryAuthenticate(username, Password(credential)) + if (authorizingSubject != null) { + val actor = Actor(Actor.Id(username), securityManager.id, nodeLegalName) + return CordaSSHAuthInfo(true, makeRPCOpsWithContext(rpcOps, InvocationContext.rpc(actor), authorizingSubject)) } - - return AuthInfo.UNSUCCESSFUL; + return AuthInfo.UNSUCCESSFUL } override fun getCredentialType(): Class = String::class.java diff --git a/node/src/main/kotlin/net/corda/node/shell/InteractiveShell.kt b/node/src/main/kotlin/net/corda/node/shell/InteractiveShell.kt index 3772e15290..ea6779f983 100644 --- a/node/src/main/kotlin/net/corda/node/shell/InteractiveShell.kt +++ b/node/src/main/kotlin/net/corda/node/shell/InteractiveShell.kt @@ -25,11 +25,11 @@ import net.corda.core.messaging.StateMachineUpdate import net.corda.core.node.services.IdentityService import net.corda.node.internal.Node import net.corda.node.internal.StartedNode -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.AdminSubject +import net.corda.node.internal.security.RPCSecurityManager import net.corda.node.services.config.NodeConfiguration import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT import net.corda.node.services.messaging.RpcAuthContext -import net.corda.node.services.messaging.RpcPermissions import net.corda.node.utilities.ANSIProgressRenderer import net.corda.node.utilities.StdoutANSIProgressRenderer import net.corda.nodeapi.internal.persistence.CordaPersistence @@ -82,19 +82,19 @@ object InteractiveShell { private lateinit var node: StartedNode @VisibleForTesting internal lateinit var database: CordaPersistence - private lateinit var rpcOps:CordaRPCOps - private lateinit var userService:RPCUserService - private lateinit var identityService:IdentityService - private var shell:Shell? = null + private lateinit var rpcOps: CordaRPCOps + private lateinit var securityManager: RPCSecurityManager + private lateinit var identityService: IdentityService + private var shell: Shell? = null private lateinit var nodeLegalName: CordaX500Name /** * Starts an interactive shell connected to the local terminal. This shell gives administrator access to the node * internals. */ - fun startShell(configuration:NodeConfiguration, cordaRPCOps: CordaRPCOps, userService: RPCUserService, identityService: IdentityService, database: CordaPersistence) { + fun startShell(configuration: NodeConfiguration, cordaRPCOps: CordaRPCOps, securityManager: RPCSecurityManager, identityService: IdentityService, database: CordaPersistence) { this.rpcOps = cordaRPCOps - this.userService = userService + this.securityManager = securityManager this.identityService = identityService this.nodeLegalName = configuration.myLegalName this.database = database @@ -123,14 +123,14 @@ object InteractiveShell { } } - fun runLocalShell(node:StartedNode) { + fun runLocalShell(node: StartedNode) { val terminal = TerminalFactory.create() val consoleReader = ConsoleReader("Corda", FileInputStream(FileDescriptor.`in`), System.out, terminal) val jlineProcessor = JLineProcessor(terminal.isAnsiSupported, shell, consoleReader, System.out) InterruptHandler { jlineProcessor.interrupt() }.install() thread(name = "Command line shell processor", isDaemon = true) { // Give whoever has local shell access administrator access to the node. - val context = RpcAuthContext(net.corda.core.context.InvocationContext.shell(), RpcPermissions.ALL) + val context = RpcAuthContext(net.corda.core.context.InvocationContext.shell(), AdminSubject("SHELL_USER")) CURRENT_RPC_CONTEXT.set(context) Emoji.renderIfSupported { jlineProcessor.run() @@ -169,7 +169,7 @@ object InteractiveShell { // Don't use the Java language plugin (we may not have tools.jar available at runtime), this // will cause any commands using JIT Java compilation to be suppressed. In CRaSH upstream that // is only the 'jmx' command. - return super.getPlugins().filterNot { it is JavaLanguage } + CordaAuthenticationPlugin(rpcOps, userService, nodeLegalName) + return super.getPlugins().filterNot { it is JavaLanguage } + CordaAuthenticationPlugin(rpcOps, securityManager, nodeLegalName) } } val attributes = mapOf( @@ -180,7 +180,7 @@ object InteractiveShell { context.refresh() this.config = config start(context) - return context.getPlugin(ShellFactory::class.java).create(null, CordaSSHAuthInfo(false, makeRPCOpsWithContext(rpcOps, net.corda.core.context.InvocationContext.shell(), RpcPermissions.ALL), StdoutANSIProgressRenderer)) + return context.getPlugin(ShellFactory::class.java).create(null, CordaSSHAuthInfo(false, makeRPCOpsWithContext(rpcOps, net.corda.core.context.InvocationContext.shell(), AdminSubject("SHELL_USER")), StdoutANSIProgressRenderer)) } } @@ -248,7 +248,7 @@ object InteractiveShell { } catch (e: NoApplicableConstructor) { output.println("No matching constructor found:", Color.red) e.errors.forEach { output.println("- $it", Color.red) } - } catch (e:PermissionException) { + } catch (e: PermissionException) { output.println(e.message ?: "Access denied", Color.red) } finally { InputStreamDeserializer.closeAll() @@ -271,9 +271,9 @@ object InteractiveShell { */ @Throws(NoApplicableConstructor::class) fun runFlowFromString(invoke: (Class>, Array) -> FlowProgressHandle, - inputData: String, - clazz: Class>, - om: ObjectMapper = yamlInputMapper): FlowProgressHandle { + inputData: String, + clazz: Class>, + om: ObjectMapper = yamlInputMapper): FlowProgressHandle { // For each constructor, attempt to parse the input data as a method call. Use the first that succeeds, // and keep track of the reasons we failed so we can print them out if no constructors are usable. val parser = StringToMethodCallParser(clazz, om) diff --git a/node/src/main/kotlin/net/corda/node/shell/RPCOpsWithContext.kt b/node/src/main/kotlin/net/corda/node/shell/RPCOpsWithContext.kt index afb163fed0..01446bd58d 100644 --- a/node/src/main/kotlin/net/corda/node/shell/RPCOpsWithContext.kt +++ b/node/src/main/kotlin/net/corda/node/shell/RPCOpsWithContext.kt @@ -1,36 +1,39 @@ package net.corda.node.shell import net.corda.core.context.InvocationContext -import net.corda.core.messaging.* +import net.corda.core.messaging.CordaRPCOps import net.corda.core.utilities.getOrThrow +import net.corda.node.internal.security.AuthorizingSubject import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT import net.corda.node.services.messaging.RpcAuthContext -import net.corda.node.services.messaging.RpcPermissions import java.lang.reflect.InvocationTargetException import java.lang.reflect.Proxy import java.util.concurrent.CompletableFuture import java.util.concurrent.Future -fun makeRPCOpsWithContext(cordaRPCOps: CordaRPCOps, invocationContext:InvocationContext, rpcPermissions: RpcPermissions) : CordaRPCOps { - return Proxy.newProxyInstance(CordaRPCOps::class.java.classLoader, arrayOf(CordaRPCOps::class.java), { proxy, method, args -> - RPCContextRunner(invocationContext, rpcPermissions) { - try { - method.invoke(cordaRPCOps, *(args ?: arrayOf())) - } catch (e: InvocationTargetException) { - // Unpack exception. - throw e.targetException - } - }.get().getOrThrow() - }) as CordaRPCOps +fun makeRPCOpsWithContext(cordaRPCOps: CordaRPCOps, invocationContext:InvocationContext, authorizingSubject: AuthorizingSubject) : CordaRPCOps { + + return Proxy.newProxyInstance(CordaRPCOps::class.java.classLoader, arrayOf(CordaRPCOps::class.java), { _, method, args -> + RPCContextRunner(invocationContext, authorizingSubject) { + try { + method.invoke(cordaRPCOps, *(args ?: arrayOf())) + } catch (e: InvocationTargetException) { + // Unpack exception. + throw e.targetException + } + }.get().getOrThrow() + }) as CordaRPCOps } -private class RPCContextRunner(val invocationContext:InvocationContext, val rpcPermissions: RpcPermissions, val block:() -> T) : Thread() { +private class RPCContextRunner(val invocationContext: InvocationContext, val authorizingSubject: AuthorizingSubject, val block:() -> T): Thread() { + private var result: CompletableFuture = CompletableFuture() + override fun run() { - CURRENT_RPC_CONTEXT.set(RpcAuthContext(invocationContext, rpcPermissions)) + CURRENT_RPC_CONTEXT.set(RpcAuthContext(invocationContext, authorizingSubject)) try { result.complete(block()) - } catch (e:Throwable) { + } catch (e: Throwable) { result.completeExceptionally(e) } finally { CURRENT_RPC_CONTEXT.remove() diff --git a/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt b/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt index 5ddff0c2d5..a579538eab 100644 --- a/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt +++ b/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt @@ -2,6 +2,7 @@ package net.corda.node import co.paralleluniverse.fibers.Suspendable import net.corda.client.rpc.PermissionException +import net.corda.core.context.AuthServiceId import net.corda.core.context.InvocationContext import net.corda.core.contracts.Amount import net.corda.core.contracts.ContractState @@ -26,11 +27,12 @@ import net.corda.finance.flows.CashIssueFlow import net.corda.finance.flows.CashPaymentFlow import net.corda.node.internal.SecureCordaRPCOps import net.corda.node.internal.StartedNode +import net.corda.node.internal.security.RPCSecurityManagerImpl import net.corda.node.services.Permissions.Companion.invokeRpc import net.corda.node.services.Permissions.Companion.startFlow import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT import net.corda.node.services.messaging.RpcAuthContext -import net.corda.node.services.messaging.RpcPermissions +import net.corda.nodeapi.internal.config.User import net.corda.testing.* import net.corda.testing.node.MockNetwork import net.corda.testing.node.MockNetwork.MockNode @@ -48,6 +50,15 @@ import kotlin.test.assertFalse import kotlin.test.assertNull import kotlin.test.assertTrue +// Mock an AuthorizingSubject instance sticking to a fixed set of permissions +private fun buildSubject(principal: String, permissionStrings: Set) = + RPCSecurityManagerImpl.fromUserList( + id = AuthServiceId("TEST"), + users = listOf(User(username = principal, + password = "", + permissions = permissionStrings))) + .buildSubject(principal) + class CordaRPCOpsImplTest { private companion object { val testJar = "net/corda/node/testing/test.jar" @@ -67,7 +78,7 @@ class CordaRPCOpsImplTest { mockNet = MockNetwork(cordappPackages = listOf("net.corda.finance.contracts.asset")) aliceNode = mockNet.createNode(MockNodeParameters(legalName = ALICE_NAME)) rpc = SecureCordaRPCOps(aliceNode.services, aliceNode.smm, aliceNode.database, aliceNode.services) - CURRENT_RPC_CONTEXT.set(RpcAuthContext(InvocationContext.rpc(testActor()), RpcPermissions.NONE)) + CURRENT_RPC_CONTEXT.set(RpcAuthContext(InvocationContext.rpc(testActor()), buildSubject("TEST_USER", emptySet()))) mockNet.runNetwork() withPermissions(invokeRpc(CordaRPCOps::notaryIdentities)) { @@ -301,7 +312,8 @@ class CordaRPCOpsImplTest { val previous = CURRENT_RPC_CONTEXT.get() try { - CURRENT_RPC_CONTEXT.set(previous.copy(grantedPermissions = RpcPermissions(permissions.toSet()))) + CURRENT_RPC_CONTEXT.set(previous.copy(authorizer = + buildSubject(previous.principal, permissions.toSet()))) action.invoke() } finally { CURRENT_RPC_CONTEXT.set(previous) diff --git a/node/src/test/kotlin/net/corda/node/services/RPCUserServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/RPCSecurityManagerTest.kt similarity index 68% rename from node/src/test/kotlin/net/corda/node/services/RPCUserServiceTest.kt rename to node/src/test/kotlin/net/corda/node/services/RPCSecurityManagerTest.kt index 0f54c85d1c..2866d41dc4 100644 --- a/node/src/test/kotlin/net/corda/node/services/RPCUserServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/RPCSecurityManagerTest.kt @@ -1,11 +1,12 @@ package net.corda.node.services - +import net.corda.core.context.AuthServiceId +import net.corda.node.internal.security.RPCSecurityManagerImpl import net.corda.nodeapi.internal.config.User import org.assertj.core.api.Assertions.assertThatThrownBy import org.junit.Test -class RPCUserServiceTest { +class RPCSecurityManagerTest { @Test fun `Artemis special characters not permitted in RPC usernames`() { @@ -15,6 +16,6 @@ class RPCUserServiceTest { } private fun configWithRPCUsername(username: String) { - RPCUserServiceImpl(listOf(User(username, "password", setOf()))) + RPCSecurityManagerImpl.fromUserList(users = listOf(User(username, "password", setOf())), id = AuthServiceId("TEST")) } } \ No newline at end of file diff --git a/node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTests.kt b/node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTests.kt index 4b7972d02d..35d0284052 100644 --- a/node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTests.kt @@ -1,9 +1,10 @@ package net.corda.node.services.messaging +import net.corda.core.context.AuthServiceId import net.corda.core.crypto.generateKeyPair import net.corda.core.utilities.NetworkHostAndPort -import net.corda.node.services.RPCUserService -import net.corda.node.services.RPCUserServiceImpl +import net.corda.node.internal.security.RPCSecurityManager +import net.corda.node.internal.security.RPCSecurityManagerImpl import net.corda.node.services.config.NodeConfiguration import net.corda.node.services.config.configureWithDevSSLCertificate import net.corda.node.services.network.NetworkMapCacheImpl @@ -50,7 +51,7 @@ class ArtemisMessagingTests { private lateinit var config: NodeConfiguration private lateinit var database: CordaPersistence - private lateinit var userService: RPCUserService + private lateinit var securityManager: RPCSecurityManager private var messagingClient: P2PMessagingClient? = null private var messagingServer: ArtemisMessagingServer? = null @@ -58,7 +59,7 @@ class ArtemisMessagingTests { @Before fun setUp() { - userService = RPCUserServiceImpl(emptyList()) + securityManager = RPCSecurityManagerImpl.fromUserList(users = emptyList(), id = AuthServiceId("TEST")) config = testNodeConfiguration( baseDirectory = temporaryFolder.root.toPath(), myLegalName = ALICE.name) @@ -169,7 +170,7 @@ class ArtemisMessagingTests { } private fun createMessagingServer(local: Int = serverPort, rpc: Int = rpcPort): ArtemisMessagingServer { - return ArtemisMessagingServer(config, local, rpc, networkMapCache, userService).apply { + return ArtemisMessagingServer(config, local, rpc, networkMapCache, securityManager).apply { config.configureWithDevSSLCertificate() messagingServer = this } diff --git a/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt b/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt index 7c36962968..98c06829b8 100644 --- a/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/persistence/HibernateConfigurationTest.kt @@ -868,7 +868,7 @@ class HibernateConfigurationTest { } /** - * Test invoking SQL query using JDBC connection (session) + * Test invoking SQL query using DB connection (session) */ @Test fun `test calling an arbitrary JDBC native query`() { diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt index 7f1563880b..ed558efbe1 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt @@ -2037,7 +2037,7 @@ class VaultQueryTests { * USE CASE demonstrations (outside of mainline Corda) * * 1) Template / Tutorial CorDapp service using Vault API Custom Query to access attributes of IOU State - * 2) Template / Tutorial Flow using a JDBC session to execute a custom query + * 2) Template / Tutorial Flow using a DB session to execute a custom query * 3) Template / Tutorial CorDapp service query extension executing Named Queries via JPA * 4) Advanced pagination queries using Spring Data (and/or Hibernate/JPQL) */ diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt index 086651a72e..62902a24a2 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt @@ -16,7 +16,7 @@ import net.corda.core.internal.div import net.corda.core.internal.uncheckedCast import net.corda.core.messaging.RPCOps import net.corda.core.utilities.NetworkHostAndPort -import net.corda.node.services.RPCUserService +import net.corda.node.internal.security.RPCSecurityManagerImpl import net.corda.node.services.messaging.ArtemisMessagingServer import net.corda.node.services.messaging.RPCServer import net.corda.node.services.messaging.RPCServerConfiguration @@ -428,17 +428,13 @@ data class RPCDriverDSL( minLargeMessageSize = ArtemisMessagingServer.MAX_FILE_SIZE isUseGlobalPools = false } - val userService = object : RPCUserService { - override fun getUser(username: String): User? = if (username == rpcUser.username) rpcUser else null - override val users: List get() = listOf(rpcUser) - override val id: AuthServiceId = AuthServiceId("RPC_DRIVER") - } + val rpcSecurityManager = RPCSecurityManagerImpl.fromUserList(users = listOf(rpcUser), id = AuthServiceId("TEST_SECURITY_MANAGER")) val rpcServer = RPCServer( ops, rpcUser.username, rpcUser.password, locator, - userService, + rpcSecurityManager, nodeLegalName, configuration ) diff --git a/testing/node-driver/src/test/java/net/corda/node/internal/security/PasswordTest.kt b/testing/node-driver/src/test/java/net/corda/node/internal/security/PasswordTest.kt new file mode 100644 index 0000000000..ccdf750343 --- /dev/null +++ b/testing/node-driver/src/test/java/net/corda/node/internal/security/PasswordTest.kt @@ -0,0 +1,96 @@ +package net.corda.node.internal.security + +import org.hamcrest.CoreMatchers.containsString +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.core.IsEqual.equalTo +import org.hamcrest.core.IsNot.not +import org.junit.Test + +internal class PasswordTest { + + @Test + fun immutability() { + + val charArray = "dadada".toCharArray() + val password = Password(charArray) + assertThat(password.value, equalTo(charArray)) + + charArray[0] = 'm' + assertThat(password.value, not(equalTo(charArray))) + + val value = password.value + value[1] = 'e' + assertThat(password.value, not(equalTo(value))) + } + + @Test + fun constructor_and_getters() { + + val value = "dadada" + + assertThat(Password(value.toCharArray()).value, equalTo(value.toCharArray())) + assertThat(Password(value.toCharArray()).valueAsString, equalTo(value)) + + assertThat(Password(value).value, equalTo(value.toCharArray())) + assertThat(Password(value).valueAsString, equalTo(value)) + } + + @Test + fun equals() { + + val passwordValue1 = Password("value1") + val passwordValue2 = Password("value2") + val passwordValue12 = Password("value1") + + assertThat(passwordValue1, equalTo(passwordValue1)) + + assertThat(passwordValue1, not(equalTo(passwordValue2))) + assertThat(passwordValue2, not(equalTo(passwordValue1))) + + assertThat(passwordValue1, equalTo(passwordValue12)) + assertThat(passwordValue12, equalTo(passwordValue1)) + } + + @Test + fun hashcode() { + + val passwordValue1 = Password("value1") + val passwordValue2 = Password("value2") + val passwordValue12 = Password("value1") + + assertThat(passwordValue1.hashCode(), equalTo(passwordValue1.hashCode())) + + // not strictly required by hashCode() contract, but desirable + assertThat(passwordValue1.hashCode(), not(equalTo(passwordValue2.hashCode()))) + assertThat(passwordValue2.hashCode(), not(equalTo(passwordValue1.hashCode()))) + + assertThat(passwordValue1.hashCode(), equalTo(passwordValue12.hashCode())) + assertThat(passwordValue12.hashCode(), equalTo(passwordValue1.hashCode())) + } + + @Test + fun close() { + + val value = "ipjd1@pijmps112112" + val password = Password(value) + + password.use { + val readValue = it.valueAsString + assertThat(readValue, equalTo(value)) + } + + val readValue = password.valueAsString + assertThat(readValue, not(equalTo(value))) + } + + @Test + fun toString_is_masked() { + + val value = "ipjd1@pijmps112112" + val password = Password(value) + + val toString = password.toString() + + assertThat(toString, not(containsString(value))) + } +} \ No newline at end of file

eaBOys_H743jxo3`=_Up$L$vc|Ej7b& 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ⅈ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 z zGgQ);eHE=APbZNTmN%VO4!sH=Dy{G_?kgspZ@Bo&)6>(uMNtI8t`4_#h_1ac5@br*eU4qet9*j) zrJ8Mat;aF0dBhBt#&i|?cAD>NH_IL5NWoLF2MwZ)djrG_gU#6hX~e3C&97dY z7}<>yn`J5lp^Xe>D^*FMku}rG$s7xfR;yc9&nXW~*a%yaLO_8>8p8_$d0_4HQ`3f| ztZ~YV;O!Por-gGvq$HlRLB85$p1P`n2@eio1DsBL`I_3$$PAa1D<<7gCQwl|jD}m{ zWtMHUHA;aFi=k3wRLf;>FcWNJfSYX6_ui{$XJSP;ghu`+XQ)xQsY#$XO)L1okc-pXvVqI`X z8R-qbWH6ICe{^PGX}LA2saq!NP#}N;g4wFN$Zm1DvZM;WWb|J<+y@%?@G|Y6lnUOY z(uWMV@yOwB%h9Jqe_3teK?4Ifn_mcu<4Q^t_#`b+#-$gQrQ&G_@SBT)_!na@+%yVp zyavXLSZh|40aiMcAYuag^f$xmW!@TDtL38D_t`fmR8ytJ1C@OqjS=IPHr#636;tRk z?$j=p8tj4h*+WOKgSmAh)8#PPat9Cw2+rAt3kOzYx?6?QTOKma{Gkg=l_qHmEHe>- zI^>osjZ8wVK-eB9Z%ci13`x$scpVdbRK34Vt>JYetK2T$#WEDk{$2}Uof1V0MudrZ1_bp$hrrO|3wmc=df$Md_TD_Sk9e+&HK2+!un51 z$#x;}cE9s;;R!75D7dBguRim6BrHs`e=P1_Pn0L&z?ov3p{j&!Hg`(*PWI2^M2_-fP?Vz zoiL;OK43=Q=$6nMsPUgpg5OY|lu(<=BPM)Lk@qKA|C=vHH@GbW=#r7O%U{ijG+0op zv43X`!4dW4Az_E-Y5V8DC`|vOj@W(->FX}&SrgWg|C#OnXR%FpBx(2HA?{G7*1ulr z{!@YT--oZW{0F8x21oAtFZR^`JoO&bSCwh7<|ygk_*OK*`K{Ug$+Q>y*L+1#&CSi6 zDp9ciP}uShu~>Zj28tvhBB=a-suYW%K_09tq3Id^ZOGWaie4)e82rQkF1BpMUy(?i z-mU%bKmEV^BIw6|ErN~V&hLLWP#*Q`;r@T=CXX5PI;~lMBYw#!{v~Pr@8S8+Z|swP z*&a=1OeP&T{<|o3gIl9a+ibKhm_ic%|7pVh_jR`E{64?upcVOSPdD#>`}#HGgL#{CXW literal 0 HcmV?d00001 diff --git a/gradle-plugins/cordapp/src/main/kotlin/net/corda/plugins/Utils.kt b/gradle-plugins/cordapp/src/main/kotlin/net/corda/plugins/Utils.kt index d7200ba9f8..7572cd9876 100644 --- a/gradle-plugins/cordapp/src/main/kotlin/net/corda/plugins/Utils.kt +++ b/gradle-plugins/cordapp/src/main/kotlin/net/corda/plugins/Utils.kt @@ -23,6 +23,13 @@ class Utils { project.configurations.single { it.name == "compile" }.extendsFrom(configuration) } } + fun createRuntimeConfiguration(name: String, project: Project) { + if(!project.configurations.any { it.name == name }) { + val configuration = project.configurations.create(name) + configuration.isTransitive = false + project.configurations.single { it.name == "runtime" }.extendsFrom(configuration) + } + } } } \ No newline at end of file diff --git a/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Cordformation.kt b/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Cordformation.kt index c28c8b645e..4b722a7f03 100644 --- a/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Cordformation.kt +++ b/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Cordformation.kt @@ -10,6 +10,8 @@ import java.io.File */ class Cordformation : Plugin { internal companion object { + const val CORDFORMATION_TYPE = "cordformationInternal" + /** * Gets a resource file from this plugin's JAR file. * @@ -31,5 +33,8 @@ class Cordformation : Plugin { override fun apply(project: Project) { Utils.createCompileConfiguration("cordapp", project) + Utils.createRuntimeConfiguration(CORDFORMATION_TYPE, project) + val jolokiaVersion = project.rootProject.ext("jolokia_version") + project.dependencies.add(CORDFORMATION_TYPE, "org.jolokia:jolokia-jvm:$jolokiaVersion:agent") } } diff --git a/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Node.kt b/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Node.kt index 90b1364126..c9db5095c7 100644 --- a/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Node.kt +++ b/gradle-plugins/cordformation/src/main/kotlin/net/corda/plugins/Node.kt @@ -1,6 +1,8 @@ package net.corda.plugins -import com.typesafe.config.* +import com.typesafe.config.ConfigFactory +import com.typesafe.config.ConfigRenderOptions +import com.typesafe.config.ConfigValueFactory import net.corda.cordform.CordformNode import org.bouncycastle.asn1.x500.X500Name import org.bouncycastle.asn1.x500.style.BCStyle @@ -90,6 +92,7 @@ class Node(private val project: Project) : CordformNode() { if (config.hasPath("webAddress")) { installWebserverJar() } + installAgentJar() installBuiltCordapp() installCordapps() installConfig() @@ -177,6 +180,29 @@ class Node(private val project: Project) : CordformNode() { } } + /** + * Installs the jolokia monitoring agent JAR to the node/drivers directory + */ + private fun installAgentJar() { + val jolokiaVersion = project.rootProject.ext("jolokia_version") + val agentJar = project.configuration("runtime").files { + (it.group == "org.jolokia") && + (it.name == "jolokia-jvm") && + (it.version == jolokiaVersion) + // TODO: revisit when classifier attribute is added. eg && (it.classifier = "agent") + }.first() // should always be the jolokia agent fat jar: eg. jolokia-jvm-1.3.7-agent.jar + project.logger.info("Jolokia agent jar: $agentJar") + if (agentJar.isFile) { + val driversDir = File(nodeDir, "drivers") + project.copy { + it.apply { + from(agentJar) + into(driversDir) + } + } + } + } + /** * Installs the configuration file to this node's directory and detokenises it. */ diff --git a/gradle-plugins/cordformation/src/noderunner/kotlin/net/corda/plugins/NodeRunner.kt b/gradle-plugins/cordformation/src/noderunner/kotlin/net/corda/plugins/NodeRunner.kt index 04b01654f3..94953584ab 100644 --- a/gradle-plugins/cordformation/src/noderunner/kotlin/net/corda/plugins/NodeRunner.kt +++ b/gradle-plugins/cordformation/src/noderunner/kotlin/net/corda/plugins/NodeRunner.kt @@ -22,6 +22,11 @@ private object debugPortAlloc { internal fun next() = basePort++ } +private object monitoringPortAlloc { + private var basePort = 7005 + internal fun next() = basePort++ +} + fun main(args: Array) { val startedProcesses = mutableListOf() val headless = GraphicsEnvironment.isHeadless() || args.contains(HEADLESS_FLAG) @@ -49,8 +54,9 @@ private abstract class JarType(private val jarName: String) { return null } val debugPort = debugPortAlloc.next() + val monitoringPort = monitoringPortAlloc.next() println("Starting $jarName in $dir on debug port $debugPort") - val process = (if (headless) ::HeadlessJavaCommand else ::TerminalWindowJavaCommand)(jarName, dir, debugPort, javaArgs, jvmArgs).start() + val process = (if (headless) ::HeadlessJavaCommand else ::TerminalWindowJavaCommand)(jarName, dir, debugPort, monitoringPort, javaArgs, jvmArgs).start() if (os == OS.MACOS) Thread.sleep(1000) return process } @@ -69,15 +75,23 @@ private abstract class JavaCommand( jarName: String, internal val dir: File, debugPort: Int?, + monitoringPort: Int?, internal val nodeName: String, init: MutableList.() -> Unit, args: List, jvmArgs: List ) { + private val jolokiaJar by lazy { + File("$dir/drivers").listFiles { _, filename -> + filename.matches("jolokia-jvm-.*-agent\\.jar$".toRegex()) + }.first().name + } + internal val command: List = mutableListOf().apply { add(getJavaPath()) addAll(jvmArgs) add("-Dname=$nodeName") null != debugPort && add("-Dcapsule.jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$debugPort") + null != monitoringPort && add("-Dcapsule.jvm.args=-javaagent:drivers/$jolokiaJar=port=$monitoringPort") add("-jar") add(jarName) init() @@ -89,14 +103,14 @@ private abstract class JavaCommand( internal abstract fun getJavaPath(): String } -private class HeadlessJavaCommand(jarName: String, dir: File, debugPort: Int?, args: List, jvmArgs: List) - : JavaCommand(jarName, dir, debugPort, dir.name, { add("--no-local-shell") }, args, jvmArgs) { +private class HeadlessJavaCommand(jarName: String, dir: File, debugPort: Int?, monitoringPort: Int?, args: List, jvmArgs: List) + : JavaCommand(jarName, dir, debugPort, monitoringPort, dir.name, { add("--no-local-shell") }, args, jvmArgs) { override fun processBuilder() = ProcessBuilder(command).redirectError(File("error.$nodeName.log")).inheritIO() override fun getJavaPath() = File(File(System.getProperty("java.home"), "bin"), "java").path } -private class TerminalWindowJavaCommand(jarName: String, dir: File, debugPort: Int?, args: List, jvmArgs: List) - : JavaCommand(jarName, dir, debugPort, "${dir.name}-$jarName", {}, args, jvmArgs) { +private class TerminalWindowJavaCommand(jarName: String, dir: File, debugPort: Int?, monitoringPort: Int?, args: List, jvmArgs: List) + : JavaCommand(jarName, dir, debugPort, monitoringPort, "${dir.name}-$jarName", {}, args, jvmArgs) { override fun processBuilder() = ProcessBuilder(when (os) { OS.MACOS -> { listOf("osascript", "-e", """tell app "Terminal" diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt index 30c2817fad..146bd4308d 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/CordaPersistence.kt @@ -20,7 +20,8 @@ const val NODE_DATABASE_PREFIX = "node_" data class DatabaseConfig( val initialiseSchema: Boolean = true, val serverNameTablePrefix: String = "", - val transactionIsolationLevel: TransactionIsolationLevel = TransactionIsolationLevel.REPEATABLE_READ + val transactionIsolationLevel: TransactionIsolationLevel = TransactionIsolationLevel.REPEATABLE_READ, + val exportHibernateJMXStatistics: Boolean = false ) // This class forms part of the node config and so any changes to it must be handled with care diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateConfiguration.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateConfiguration.kt index 22a664022d..4daf490c92 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateConfiguration.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateConfiguration.kt @@ -17,8 +17,10 @@ import org.hibernate.type.AbstractSingleColumnStandardBasicType import org.hibernate.type.descriptor.java.PrimitiveByteArrayTypeDescriptor import org.hibernate.type.descriptor.sql.BlobTypeDescriptor import org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor +import java.lang.management.ManagementFactory import java.sql.Connection import java.util.concurrent.ConcurrentHashMap +import javax.management.ObjectName import javax.persistence.AttributeConverter class HibernateConfiguration( @@ -60,9 +62,31 @@ class HibernateConfiguration( val sessionFactory = buildSessionFactory(config, metadataSources, databaseConfig.serverNameTablePrefix) logger.info("Created session factory for schemas: $schemas") + + // export Hibernate JMX statistics + if (databaseConfig.exportHibernateJMXStatistics) + initStatistics(sessionFactory) + return sessionFactory } + // NOTE: workaround suggested to overcome deprecation of StatisticsService (since Hibernate v4.0) + // https://stackoverflow.com/questions/23606092/hibernate-upgrade-statisticsservice + fun initStatistics(sessionFactory: SessionFactory) { + val statsName = ObjectName("org.hibernate:type=statistics") + val mbeanServer = ManagementFactory.getPlatformMBeanServer() + + val statisticsMBean = DelegatingStatisticsService(sessionFactory.statistics) + statisticsMBean.isStatisticsEnabled = true + + try { + mbeanServer.registerMBean(statisticsMBean, statsName) + } + catch (e: Exception) { + logger.warn(e.message) + } + } + private fun buildSessionFactory(config: Configuration, metadataSources: MetadataSources, tablePrefix: String): SessionFactory { config.standardServiceRegistryBuilder.applySettings(config.properties) val metadata = metadataSources.getMetadataBuilder(config.standardServiceRegistryBuilder.build()).run { diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateStatistics.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateStatistics.kt new file mode 100644 index 0000000000..2c08d3e77f --- /dev/null +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/HibernateStatistics.kt @@ -0,0 +1,227 @@ +package net.corda.nodeapi.internal.persistence + +import javax.management.MXBean + +import org.hibernate.stat.Statistics +import org.hibernate.stat.SecondLevelCacheStatistics +import org.hibernate.stat.QueryStatistics +import org.hibernate.stat.NaturalIdCacheStatistics +import org.hibernate.stat.EntityStatistics +import org.hibernate.stat.CollectionStatistics + +/** + * Exposes Hibernate [Statistics] contract as JMX resource. + */ +@MXBean +interface StatisticsService : Statistics + +/** + * Implements the MXBean interface by delegating through the actual [Statistics] implementation retrieved from the + * session factory. + */ +class DelegatingStatisticsService(private val delegate: Statistics) : StatisticsService { + + override fun clear() { + delegate.clear() + } + + override fun getCloseStatementCount(): Long { + return delegate.closeStatementCount + } + + override fun getCollectionFetchCount(): Long { + return delegate.collectionFetchCount + } + + override fun getCollectionLoadCount(): Long { + return delegate.collectionLoadCount + } + + override fun getCollectionRecreateCount(): Long { + return delegate.collectionRecreateCount + } + + override fun getCollectionRemoveCount(): Long { + return delegate.collectionRemoveCount + } + + override fun getCollectionRoleNames(): Array { + return delegate.collectionRoleNames + } + + override fun getCollectionStatistics(arg0: String): CollectionStatistics { + return delegate.getCollectionStatistics(arg0) + } + + override fun getCollectionUpdateCount(): Long { + return delegate.collectionUpdateCount + } + + override fun getConnectCount(): Long { + return delegate.connectCount + } + + override fun getEntityDeleteCount(): Long { + return delegate.entityDeleteCount + } + + override fun getEntityFetchCount(): Long { + return delegate.entityFetchCount + } + + override fun getEntityInsertCount(): Long { + return delegate.entityInsertCount + } + + override fun getEntityLoadCount(): Long { + return delegate.entityLoadCount + } + + override fun getEntityNames(): Array { + return delegate.entityNames + } + + override fun getEntityStatistics(arg0: String): EntityStatistics { + return delegate.getEntityStatistics(arg0) + } + + override fun getEntityUpdateCount(): Long { + return delegate.entityUpdateCount + } + + override fun getFlushCount(): Long { + return delegate.flushCount + } + + override fun getNaturalIdCacheHitCount(): Long { + return delegate.naturalIdCacheHitCount + } + + override fun getNaturalIdCacheMissCount(): Long { + return delegate.naturalIdCacheMissCount + } + + override fun getNaturalIdCachePutCount(): Long { + return delegate.naturalIdCachePutCount + } + + override fun getNaturalIdCacheStatistics(arg0: String): NaturalIdCacheStatistics { + return delegate.getNaturalIdCacheStatistics(arg0) + } + + override fun getNaturalIdQueryExecutionCount(): Long { + return delegate.naturalIdQueryExecutionCount + } + + override fun getNaturalIdQueryExecutionMaxTime(): Long { + return delegate.naturalIdQueryExecutionMaxTime + } + + override fun getNaturalIdQueryExecutionMaxTimeRegion(): String { + return delegate.naturalIdQueryExecutionMaxTimeRegion + } + + override fun getOptimisticFailureCount(): Long { + return delegate.optimisticFailureCount + } + + override fun getPrepareStatementCount(): Long { + return delegate.prepareStatementCount + } + + override fun getQueries(): Array { + return delegate.queries + } + + override fun getQueryCacheHitCount(): Long { + return delegate.queryCacheHitCount + } + + override fun getQueryCacheMissCount(): Long { + return delegate.queryCacheMissCount + } + + override fun getQueryCachePutCount(): Long { + return delegate.queryCachePutCount + } + + override fun getQueryExecutionCount(): Long { + return delegate.queryExecutionCount + } + + override fun getQueryExecutionMaxTime(): Long { + return delegate.queryExecutionMaxTime + } + + override fun getQueryExecutionMaxTimeQueryString(): String { + return delegate.queryExecutionMaxTimeQueryString + } + + override fun getQueryStatistics(arg0: String): QueryStatistics { + return delegate.getQueryStatistics(arg0) + } + + override fun getSecondLevelCacheHitCount(): Long { + return delegate.secondLevelCacheHitCount + } + + override fun getSecondLevelCacheMissCount(): Long { + return delegate.secondLevelCacheMissCount + } + + override fun getSecondLevelCachePutCount(): Long { + return delegate.secondLevelCachePutCount + } + + override fun getSecondLevelCacheRegionNames(): Array { + return delegate.secondLevelCacheRegionNames + } + + override fun getSecondLevelCacheStatistics(arg0: String): SecondLevelCacheStatistics { + return delegate.getSecondLevelCacheStatistics(arg0) + } + + override fun getSessionCloseCount(): Long { + return delegate.sessionCloseCount + } + + override fun getSessionOpenCount(): Long { + return delegate.sessionOpenCount + } + + override fun getStartTime(): Long { + return delegate.startTime + } + + override fun getSuccessfulTransactionCount(): Long { + return delegate.successfulTransactionCount + } + + override fun getTransactionCount(): Long { + return delegate.transactionCount + } + + override fun getUpdateTimestampsCacheHitCount(): Long { + return delegate.updateTimestampsCacheHitCount + } + + override fun getUpdateTimestampsCacheMissCount(): Long { + return delegate.updateTimestampsCacheMissCount + } + + override fun getUpdateTimestampsCachePutCount(): Long { + return delegate.updateTimestampsCachePutCount + } + + override fun isStatisticsEnabled(): Boolean { + return delegate.isStatisticsEnabled + } + + override fun logSummary() { + delegate.logSummary() + } + + override fun setStatisticsEnabled(arg0: Boolean) { + delegate.isStatisticsEnabled = arg0 + } +} \ No newline at end of file diff --git a/node/build.gradle b/node/build.gradle index 07a4248964..91a5000f3d 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -43,6 +43,11 @@ sourceSets { // This prevents problems in IntelliJ with regard to duplicate source roots. processResources { from file("$rootDir/config/dev/log4j2.xml") + from file("$rootDir/config/dev/jolokia-access.xml") +} + +processTestResources { + from file("$rootDir/config/test/jolokia-access.xml") } // To find potential version conflicts, run "gradle htmlDependencyReport" and then look in @@ -174,6 +179,9 @@ dependencies { testCompile "org.glassfish.jersey.core:jersey-server:${jersey_version}" testCompile "org.glassfish.jersey.containers:jersey-container-servlet-core:${jersey_version}" testCompile "org.glassfish.jersey.containers:jersey-container-jetty-http:${jersey_version}" + + // Jolokia JVM monitoring agent + runtime "org.jolokia:jolokia-jvm:${jolokia_version}:agent" } task integrationTest(type: Test) { diff --git a/node/capsule/build.gradle b/node/capsule/build.gradle index a0f2f2f7d1..a9bb2bbbea 100644 --- a/node/capsule/build.gradle +++ b/node/capsule/build.gradle @@ -42,7 +42,7 @@ task buildCordaJAR(type: FatCapsule, dependsOn: project(':node').compileJava) { capsuleManifest { applicationVersion = corda_release_version - appClassPath = ["jolokia-agent-war-${project.rootProject.ext.jolokia_version}.war"] + appClassPath = ["jolokia-war-${project.rootProject.ext.jolokia_version}.war"] // See experimental/quasar-hook/README.md for how to generate. def quasarExcludeExpression = "x(antlr**;bftsmart**;ch**;co.paralleluniverse**;com.codahale**;com.esotericsoftware**;com.fasterxml**;com.google**;com.ibm**;com.intellij**;com.jcabi**;com.nhaarman**;com.opengamma**;com.typesafe**;com.zaxxer**;de.javakaffee**;groovy**;groovyjarjarantlr**;groovyjarjarasm**;io.atomix**;io.github**;io.netty**;jdk**;joptsimple**;junit**;kotlin**;net.bytebuddy**;net.i2p**;org.apache**;org.assertj**;org.bouncycastle**;org.codehaus**;org.crsh**;org.dom4j**;org.fusesource**;org.h2**;org.hamcrest**;org.hibernate**;org.jboss**;org.jcp**;org.joda**;org.junit**;org.mockito**;org.objectweb**;org.objenesis**;org.slf4j**;org.w3c**;org.xml**;org.yaml**;reflectasm**;rx**)" javaAgents = ["quasar-core-${quasar_version}-jdk8.jar=${quasarExcludeExpression}"] diff --git a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt index ebb245c955..14803be925 100644 --- a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt +++ b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt @@ -81,13 +81,13 @@ open class NodeStartup(val args: Array) { conf0 } - banJavaSerialisation(conf) - preNetworkRegistration(conf) - if (shouldRegisterWithNetwork(cmdlineOptions, conf)) { + banJavaSerialisation(conf) + preNetworkRegistration(conf) + if (shouldRegisterWithNetwork(cmdlineOptions, conf)) { registerWithNetwork(cmdlineOptions, conf) return true } - logStartupInfo(versionInfo, cmdlineOptions, conf) + logStartupInfo(versionInfo, cmdlineOptions, conf) try { cmdlineOptions.baseDirectory.createDirectories() diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index cb104321c0..33ccd2bf0f 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -113,7 +113,7 @@ data class NodeConfigurationImpl( // TODO See TODO above. Rename this to nodeInfoPollingFrequency and make it of type Duration override val additionalNodeInfoPollingFrequencyMsec: Long = 5.seconds.toMillis(), override val sshd: SSHDConfiguration? = null, - override val database: DatabaseConfig = DatabaseConfig(initialiseSchema = devMode) + override val database: DatabaseConfig = DatabaseConfig(initialiseSchema = devMode, exportHibernateJMXStatistics = devMode) ) : NodeConfiguration { override val exportJMXto: String get() = "http" diff --git a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt index 2b7e496b32..e5c79352f0 100644 --- a/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt +++ b/node/src/main/kotlin/net/corda/node/services/messaging/ArtemisMessagingServer.kt @@ -211,7 +211,12 @@ class ArtemisMessagingServer(private val config: NodeConfiguration, addressFullMessagePolicy = AddressFullMessagePolicy.FAIL } ) - }.configureAddressSecurity() + // JMX enablement + if (config.exportJMXto.isNotEmpty()) {isJMXManagementEnabled = true + isJMXUseBrokerName = true} + + }.configureAddressSecurity() + private fun queueConfig(name: String, address: String = name, filter: String? = null, durable: Boolean): CoreQueueConfiguration { return CoreQueueConfiguration().apply { diff --git a/node/src/main/resources/reference.conf b/node/src/main/resources/reference.conf index dc91c3d1c0..0eb49880ea 100644 --- a/node/src/main/resources/reference.conf +++ b/node/src/main/resources/reference.conf @@ -11,6 +11,7 @@ dataSourceProperties = { } database = { transactionIsolationLevel = "REPEATABLE_READ" + exportHibernateJMXStatistics = "false" } devMode = true useHTTPS = false diff --git a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt index 37bb84424e..7c5e390960 100644 --- a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt +++ b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt @@ -4,16 +4,19 @@ import net.corda.core.concurrent.CordaFuture import net.corda.core.internal.div import net.corda.core.internal.list import net.corda.core.internal.readLines +import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.getOrThrow import net.corda.node.internal.NodeStartup import net.corda.testing.DUMMY_BANK_A import net.corda.testing.DUMMY_NOTARY import net.corda.testing.DUMMY_REGULATOR import net.corda.testing.common.internal.ProjectStructure.projectRootDir +import net.corda.testing.http.HttpApi import net.corda.testing.internal.addressMustBeBound import net.corda.testing.internal.addressMustNotBeBound import net.corda.testing.node.NotarySpec import org.assertj.core.api.Assertions.assertThat +import org.json.simple.JSONObject import org.junit.Test import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService @@ -66,6 +69,20 @@ class DriverTests { } } + @Test + fun `monitoring mode enables jolokia exporting of JMX metrics via HTTP JSON`() { + driver(jmxPolicy = JmxPolicy(true)) { + // start another node so we gain access to node JMX metrics + startNode(providedName = DUMMY_REGULATOR.name).getOrThrow() + + val webAddress = NetworkHostAndPort("localhost", 7006) + // request access to some JMX metrics via Jolokia HTTP/JSON + val api = HttpApi.fromHostAndPort(webAddress, "/jolokia/") + val versionAsJson = api.getJson("/jolokia/version/") + assertThat(versionAsJson.getValue("status")).isEqualTo(200) + } + } + @Test fun `started node, which is not waited for in the driver, is shutdown when the driver exits`() { // First check that the process-id file is created by the node on startup, so that we can be sure our check that diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt index 5e5cf90e9d..e81696dc2f 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt @@ -128,6 +128,10 @@ data class NodeParameters( fun setMaximumHeapSize(maximumHeapSize: String) = copy(maximumHeapSize = maximumHeapSize) } +data class JmxPolicy(val startJmxHttpServer: Boolean = false, + val jmxHttpServerPortAllocation: PortAllocation? = + if (startJmxHttpServer) PortAllocation.Incremental(7005) else null) + /** * [driver] allows one to start up nodes like this: * driver { @@ -155,6 +159,9 @@ data class NodeParameters( * not. Note that this may be overridden in [DriverDSL.startNode]. * @param notarySpecs The notaries advertised for this network. These nodes will be started automatically and will be * available from [DriverDSL.notaryHandles]. Defaults to a simple validating notary. + * @param jmxPolicy Used to specify whether to expose JMX metrics via Jolokia HHTP/JSON. Defines two attributes: + * startJmxHttpServer: indicates whether the spawned nodes should start with a Jolokia JMX agent to enable remote JMX monitoring using HTTP/JSON. + * jmxHttpServerPortAllocation: the port allocation strategy to use for remote Jolokia/JMX monitoring over HTTP. Defaults to incremental. * @param dsl The dsl itself. * @return The value returned in the [dsl] closure. */ @@ -171,6 +178,7 @@ fun driver( waitForAllNodesToFinish: Boolean = defaultParameters.waitForAllNodesToFinish, notarySpecs: List = defaultParameters.notarySpecs, extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, + jmxPolicy: JmxPolicy = JmxPolicy(), dsl: DriverDSL.() -> A ): A { return genericDriver( @@ -184,7 +192,8 @@ fun driver( startNodesInProcess = startNodesInProcess, waitForNodesToFinish = waitForAllNodesToFinish, notarySpecs = notarySpecs, - extraCordappPackagesToScan = extraCordappPackagesToScan + extraCordappPackagesToScan = extraCordappPackagesToScan, + jmxPolicy = jmxPolicy ), coerce = { it }, dsl = dsl, @@ -219,7 +228,9 @@ data class DriverParameters( val startNodesInProcess: Boolean = false, val waitForAllNodesToFinish: Boolean = false, val notarySpecs: List = listOf(NotarySpec(DUMMY_NOTARY.name)), - val extraCordappPackagesToScan: List = emptyList() + val extraCordappPackagesToScan: List = emptyList(), + val jmxPolicy: JmxPolicy = JmxPolicy() + ) { fun setIsDebug(isDebug: Boolean) = copy(isDebug = isDebug) fun setDriverDirectory(driverDirectory: Path) = copy(driverDirectory = driverDirectory) @@ -232,4 +243,5 @@ data class DriverParameters( fun setWaitForAllNodesToFinish(waitForAllNodesToFinish: Boolean) = copy(waitForAllNodesToFinish = waitForAllNodesToFinish) fun setExtraCordappPackagesToScan(extraCordappPackagesToScan: List) = copy(extraCordappPackagesToScan = extraCordappPackagesToScan) fun setNotarySpecs(notarySpecs: List) = copy(notarySpecs = notarySpecs) + fun setJmxPolicy(jmxPolicy: JmxPolicy) = copy(jmxPolicy = jmxPolicy) } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt index b2fe9a1070..a4046764d6 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/DriverDSLImpl.kt @@ -72,6 +72,7 @@ class DriverDSLImpl( val startNodesInProcess: Boolean, val waitForNodesToFinish: Boolean, extraCordappPackagesToScan: List, + val jmxPolicy: JmxPolicy, val notarySpecs: List ) : InternalDriverDSL { private var _executorService: ScheduledExecutorService? = null @@ -96,11 +97,25 @@ class DriverDSLImpl( //TODO: remove this once we can bundle quasar properly. private val quasarJarPath: String by lazy { - val cl = ClassLoader.getSystemClassLoader() - val urls = (cl as URLClassLoader).urLs - val quasarPattern = ".*quasar.*\\.jar$".toRegex() - val quasarFileUrl = urls.first { quasarPattern.matches(it.path) } - Paths.get(quasarFileUrl.toURI()).toString() + resolveJar(".*quasar.*\\.jar$") + } + + private val jolokiaJarPath: String by lazy { + resolveJar(".*jolokia-jvm-.*-agent\\.jar$") + } + + private fun resolveJar(jarNamePattern: String): String { + return try { + val cl = ClassLoader.getSystemClassLoader() + val urls = (cl as URLClassLoader).urLs + val jarPattern = jarNamePattern.toRegex() + val jarFileUrl = urls.first { jarPattern.matches(it.path) } + Paths.get(jarFileUrl.toURI()).toString() + } + catch(e: Exception) { + log.warn("Unable to locate JAR `$jarNamePattern` on classpath: ${e.message}", e) + throw e + } } override fun shutdown() { @@ -380,7 +395,8 @@ class DriverDSLImpl( } } else { val debugPort = if (isDebug) debugPortAllocation.nextPort() else null - val process = startOutOfProcessNode(configuration, config, quasarJarPath, debugPort, systemProperties, cordappPackages, maximumHeapSize) + val monitorPort = if (jmxPolicy.startJmxHttpServer) jmxPolicy.jmxHttpServerPortAllocation?.nextPort() else null + val process = startOutOfProcessNode(configuration, config, quasarJarPath, debugPort, jolokiaJarPath, monitorPort, systemProperties, cordappPackages, maximumHeapSize) if (waitForNodesToFinish) { state.locked { processes += process @@ -473,11 +489,13 @@ class DriverDSLImpl( config: Config, quasarJarPath: String, debugPort: Int?, + jolokiaJarPath: String, + monitorPort: Int?, overriddenSystemProperties: Map, cordappPackages: List, maximumHeapSize: String ): Process { - log.info("Starting out-of-process Node ${nodeConf.myLegalName.organisation}, debug port is " + (debugPort ?: "not enabled")) + log.info("Starting out-of-process Node ${nodeConf.myLegalName.organisation}, debug port is " + (debugPort ?: "not enabled") + ", jolokia monitoring port is " + (monitorPort ?: "not enabled")) // Write node.conf writeConfig(nodeConf.baseDirectory, "node.conf", config) @@ -498,6 +516,7 @@ class DriverDSLImpl( "org.objenesis**;org.slf4j**;org.w3c**;org.xml**;org.yaml**;reflectasm**;rx**)" val extraJvmArguments = systemProperties.removeResolvedClasspath().map { "-D${it.key}=${it.value}" } + "-javaagent:$quasarJarPath=$excludePattern" + val jolokiaAgent = monitorPort?.let { "-javaagent:$jolokiaJarPath=port=$monitorPort,host=localhost" } val loggingLevel = if (debugPort == null) "INFO" else "DEBUG" return ProcessUtilities.startCordaProcess( @@ -508,7 +527,7 @@ class DriverDSLImpl( "--no-local-shell" ), jdwpPort = debugPort, - extraJvmArguments = extraJvmArguments, + extraJvmArguments = extraJvmArguments + listOfNotNull(jolokiaAgent), errorLogPath = nodeConf.baseDirectory / NodeStartup.LOGS_DIRECTORY_NAME / "error.log", workingDirectory = nodeConf.baseDirectory, maximumHeapSize = maximumHeapSize @@ -641,6 +660,7 @@ fun genericDriver( startNodesInProcess: Boolean = defaultParameters.startNodesInProcess, notarySpecs: List, extraCordappPackagesToScan: List = defaultParameters.extraCordappPackagesToScan, + jmxPolicy: JmxPolicy = JmxPolicy(), driverDslWrapper: (DriverDSLImpl) -> D, coerce: (D) -> DI, dsl: DI.() -> A ): A { @@ -656,6 +676,7 @@ fun genericDriver( startNodesInProcess = startNodesInProcess, waitForNodesToFinish = waitForNodesToFinish, extraCordappPackagesToScan = extraCordappPackagesToScan, + jmxPolicy = jmxPolicy, notarySpecs = notarySpecs ) ) diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt index 8efac75115..086651a72e 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/RPCDriver.kt @@ -89,6 +89,7 @@ val fakeNodeLegalName = CordaX500Name(organisation = "Not:a:real:name", locality // Use a global pool so that we can run RPC tests in parallel private val globalPortAllocation = PortAllocation.Incremental(10000) private val globalDebugPortAllocation = PortAllocation.Incremental(5005) +private val globalMonitorPortAllocation = PortAllocation.Incremental(7005) fun rpcDriver( isDebug: Boolean = false, driverDirectory: Path = Paths.get("build", getTimestampAsDirectoryName()), @@ -101,28 +102,29 @@ fun rpcDriver( extraCordappPackagesToScan: List = emptyList(), notarySpecs: List = emptyList(), externalTrace: Trace? = null, + jmxPolicy: JmxPolicy = JmxPolicy(), dsl: RPCDriverDSL.() -> A -): A { +) : A { return genericDriver( - driverDsl = RPCDriverDSL( - DriverDSLImpl( - portAllocation = portAllocation, - debugPortAllocation = debugPortAllocation, - systemProperties = systemProperties, - driverDirectory = driverDirectory.toAbsolutePath(), - useTestClock = useTestClock, - isDebug = isDebug, - startNodesInProcess = startNodesInProcess, - waitForNodesToFinish = waitForNodesToFinish, - extraCordappPackagesToScan = extraCordappPackagesToScan, - notarySpecs = notarySpecs - ), externalTrace - ), - coerce = { it }, - dsl = dsl, - initialiseSerialization = false - ) -} + driverDsl = RPCDriverDSL( + DriverDSLImpl( + portAllocation = portAllocation, + debugPortAllocation = debugPortAllocation, + systemProperties = systemProperties, + driverDirectory = driverDirectory.toAbsolutePath(), + useTestClock = useTestClock, + isDebug = isDebug, + startNodesInProcess = startNodesInProcess, + waitForNodesToFinish = waitForNodesToFinish, + extraCordappPackagesToScan = extraCordappPackagesToScan, + notarySpecs = notarySpecs, + jmxPolicy = jmxPolicy + ), externalTrace + ), + coerce = { it }, + dsl = dsl, + initialiseSerialization = false +)} private class SingleUserSecurityManager(val rpcUser: User) : ActiveMQSecurityManager3 { override fun validateUser(user: String?, password: String?) = isValid(user, password) diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt index fb7396ec1d..60dfe3262d 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/internal/demorun/DemoRunner.kt @@ -8,6 +8,7 @@ import net.corda.core.internal.concurrent.flatMap import net.corda.core.internal.concurrent.transpose import net.corda.core.utilities.NetworkHostAndPort import net.corda.core.utilities.getOrThrow +import net.corda.testing.driver.JmxPolicy import net.corda.testing.internal.DriverDSLImpl import net.corda.testing.driver.PortAllocation import net.corda.testing.driver.driver @@ -41,6 +42,7 @@ private fun CordformDefinition.runNodes(waitForAllNodesToFinish: Boolean, block: .max()!! driver( isDebug = true, + jmxPolicy = JmxPolicy(true), driverDirectory = nodesDirectory, extraCordappPackagesToScan = cordappPackages, // Notaries are manually specified in Cordform so we don't want the driver automatically starting any diff --git a/tools/explorer/src/main/kotlin/net/corda/explorer/ExplorerSimulation.kt b/tools/explorer/src/main/kotlin/net/corda/explorer/ExplorerSimulation.kt index b92dfd144b..ff22278612 100644 --- a/tools/explorer/src/main/kotlin/net/corda/explorer/ExplorerSimulation.kt +++ b/tools/explorer/src/main/kotlin/net/corda/explorer/ExplorerSimulation.kt @@ -24,6 +24,7 @@ import net.corda.node.services.Permissions.Companion.startFlow import net.corda.nodeapi.internal.config.User import net.corda.testing.ALICE import net.corda.testing.BOB +import net.corda.testing.driver.JmxPolicy import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.PortAllocation import net.corda.testing.driver.driver @@ -64,14 +65,14 @@ class ExplorerSimulation(private val options: OptionSet) { private fun startDemoNodes() { val portAllocation = PortAllocation.Incremental(20000) - driver(portAllocation = portAllocation, extraCordappPackagesToScan = listOf("net.corda.finance"), waitForAllNodesToFinish = true) { + driver(portAllocation = portAllocation, extraCordappPackagesToScan = listOf("net.corda.finance"), waitForAllNodesToFinish = true, jmxPolicy = JmxPolicy(true)) { // TODO : Supported flow should be exposed somehow from the node instead of set of ServiceInfo. - val alice = startNode(providedName = ALICE.name, rpcUsers = listOf(user)) + val alice = startNode(providedName = ALICE.name, rpcUsers = listOf(user), customOverrides = mapOf("devMode" to "true")) val bob = startNode(providedName = BOB.name, rpcUsers = listOf(user)) val ukBankName = CordaX500Name(organisation = "UK Bank Plc", locality = "London", country = "GB") val usaBankName = CordaX500Name(organisation = "USA Bank Corp", locality = "New York", country = "US") val issuerGBP = startNode(providedName = ukBankName, rpcUsers = listOf(manager), - customOverrides = mapOf("issuableCurrencies" to listOf("GBP"))) + customOverrides = mapOf("issuableCurrencies" to listOf("GBP"), "" to "true")) val issuerUSD = startNode(providedName = usaBankName, rpcUsers = listOf(manager), customOverrides = mapOf("issuableCurrencies" to listOf("USD"))) diff --git a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt index 8ce77720f5..b5096b46fa 100644 --- a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt +++ b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt @@ -22,6 +22,7 @@ import net.corda.nodeapi.VerifierApi import net.corda.nodeapi.internal.config.NodeSSLConfiguration import net.corda.nodeapi.internal.config.SSLConfiguration import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_USER +import net.corda.testing.driver.JmxPolicy import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.PortAllocation import net.corda.testing.driver.driver @@ -59,6 +60,7 @@ fun verifierDriver( waitForNodesToFinish: Boolean = false, extraCordappPackagesToScan: List = emptyList(), notarySpecs: List = emptyList(), + jmxPolicy: JmxPolicy = JmxPolicy(), dsl: VerifierDriverDSL.() -> A ) = genericDriver( driverDsl = VerifierDriverDSL( @@ -72,7 +74,8 @@ fun verifierDriver( startNodesInProcess = startNodesInProcess, waitForNodesToFinish = waitForNodesToFinish, extraCordappPackagesToScan = extraCordappPackagesToScan, - notarySpecs = notarySpecs + notarySpecs = notarySpecs, + jmxPolicy = jmxPolicy ) ), coerce = { it }, diff --git a/webserver/build.gradle b/webserver/build.gradle index 166a8fe3aa..e0f66a360c 100644 --- a/webserver/build.gradle +++ b/webserver/build.gradle @@ -38,7 +38,7 @@ dependencies { compile "org.eclipse.jetty:jetty-servlet:$jetty_version" compile "org.eclipse.jetty:jetty-webapp:$jetty_version" compile "javax.servlet:javax.servlet-api:3.1.0" - compile "org.jolokia:jolokia-agent-war:$jolokia_version" + compile "org.jolokia:jolokia-war:$jolokia_version" compile "commons-fileupload:commons-fileupload:$fileupload_version" // Log4J: logging framework (with SLF4J bindings) diff --git a/webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt b/webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt index 46bdf5a7ef..e5a2ce254f 100644 --- a/webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt +++ b/webserver/src/main/kotlin/net/corda/webserver/internal/NodeWebServer.kt @@ -58,7 +58,7 @@ class NodeWebServer(val config: WebServerConfig) { // Export JMX monitoring statistics and data over REST/JSON. if (config.exportJMXto.split(',').contains("http")) { val classpath = System.getProperty("java.class.path").split(System.getProperty("path.separator")) - val warpath = classpath.firstOrNull { it.contains("jolokia-agent-war-2") && it.endsWith(".war") } + val warpath = classpath.firstOrNull { it.contains("jolokia-war") && it.endsWith(".war") } if (warpath != null) { handlerCollection.addHandler(WebAppContext().apply { // Find the jolokia WAR file on the classpath. From 6c02c91ec74ae26ba072fcde3a6aa3e91d0aa3b1 Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Fri, 8 Dec 2017 17:00:08 +0000 Subject: [PATCH 13/17] Removes old network diagram. Consolidates two sections on node naming. Moves contract constraints to API section. --- ...aints.rst => api-contract-constraints.rst} | 34 +++++++++--------- docs/source/corda-api.rst | 1 + docs/source/generating-a-node.rst | 28 +++++++++++---- docs/source/key-concepts-ecosystem.rst | 12 +------ docs/source/key-concepts-identity.rst | 31 +--------------- docs/source/key-concepts.rst | 1 - docs/source/resources/cordaNetwork.png | Bin 102022 -> 0 bytes 7 files changed, 42 insertions(+), 65 deletions(-) rename docs/source/{key-concepts-contract-constraints.rst => api-contract-constraints.rst} (83%) delete mode 100644 docs/source/resources/cordaNetwork.png diff --git a/docs/source/key-concepts-contract-constraints.rst b/docs/source/api-contract-constraints.rst similarity index 83% rename from docs/source/key-concepts-contract-constraints.rst rename to docs/source/api-contract-constraints.rst index 35db806193..6f7fad2ff4 100644 --- a/docs/source/key-concepts-contract-constraints.rst +++ b/docs/source/api-contract-constraints.rst @@ -1,15 +1,15 @@ -Contract Constraints -==================== +API: Contract Constraints +========================= A basic understanding of contract key concepts, which can be found :doc:`here `, is required reading for this page. Transaction states specify a constraint over the contract that will be used to verify it. For a transaction to be -valid, the verify() function associated with each state must run successfully. However, for this to be secure, it is -not sufficient to specify the verify() function by name as there may exist multiple different implementations with the -same method signature and enclosing class. Contract constraints solve this problem by allowing a contract developer to -constrain which verify() functions out of the universe of implementations can be used. -(ie the universe is everything that matches the signature and contract constraints restricts this universe to a subset.) +valid, the ``verify`` function associated with each state must run successfully. However, for this to be secure, it is +not sufficient to specify the ``verify`` function by name as there may exist multiple different implementations with +the same method signature and enclosing class. Contract constraints solve this problem by allowing a contract developer +to constrain which ``verify`` functions out of the universe of implementations can be used (i.e. the universe is +everything that matches the signature and contract constraints restricts this universe to a subset). A typical constraint is the hash of the CorDapp JAR that contains the contract and states but will in future releases include constraints that require specific signers of the JAR, or both the signer and the hash. Constraints can be @@ -20,12 +20,13 @@ constructs a ``TransactionState`` without specifying the constraint parameter a (``AutomaticHashConstraint``) is used. This default will be automatically resolved to a specific ``HashAttachmentConstraint`` that contains the hash of the attachment which contains the contract of that ``TransactionState``. This automatic resolution occurs when a ``TransactionBuilder`` is converted to a -``WireTransaction``. This reduces the boilerplate involved in finding a specific hash constraint when building a transaction. +``WireTransaction``. This reduces the boilerplate involved in finding a specific hash constraint when building a +transaction. It is possible to specify the constraint explicitly with any other class that implements the ``AttachmentConstraint`` interface. To specify a hash manually the ``HashAttachmentConstraint`` can be used and to not provide any constraint the ``AlwaysAcceptAttachmentConstraint`` can be used - though this is intended for testing only. An example below -shows how to construct a ``TransactionState`` with an explicitly specified hash constraint from within a flow; +shows how to construct a ``TransactionState`` with an explicitly specified hash constraint from within a flow: .. sourcecode:: java @@ -42,12 +43,11 @@ shows how to construct a ``TransactionState`` with an explicitly specified hash LedgerTransaction ltx = wtx.toLedgerTransaction(serviceHub) ltx.verify() // Verifies both the attachment constraints and contracts - This mechanism exists both for integrity and security reasons. It is important not to verify against the wrong contract, which could happen if the wrong version of the contract is attached. More importantly when resolving transaction chains there will, in a future release, be attachments loaded from the network into the attachment sandbox that are used -to verify the transaction chain. Ensuring the attachment used is the correct one ensures that the verification will -not be tamperable by providing a fake contract. +to verify the transaction chain. Ensuring the attachment used is the correct one ensures that the verification is +tamper-proof by providing a fake contract. CorDapps as attachments ----------------------- @@ -55,10 +55,10 @@ CorDapps as attachments CorDapp JARs (:doc:`cordapp-overview`) that are installed to the node and contain classes implementing the ``Contract`` interface are automatically loaded into the ``AttachmentStorage`` of a node at startup. -After CorDapps are loaded into the attachment store the node creates a link between contract classes and the -attachment that they were loaded from. This makes it possible to find the attachment for any given contract. -This is how the automatic resolution of attachments is done by the ``TransactionBuilder`` and how, when verifying -the constraints and contracts, attachments are associated with their respective contracts. +After CorDapps are loaded into the attachment store the node creates a link between contract classes and the attachment +that they were loaded from. This makes it possible to find the attachment for any given contract. This is how the +automatic resolution of attachments is done by the ``TransactionBuilder`` and how, when verifying the constraints and +contracts, attachments are associated with their respective contracts. Implementations --------------- @@ -95,7 +95,7 @@ to specify JAR URLs in the case that the CorDapp(s) involved in testing already MockNetwork/MockNode ******************** -The most simple way to ensure that a vanilla instance of a MockNode generates the correct CorDapps is to use the +The simplest way to ensure that a vanilla instance of a MockNode generates the correct CorDapps is to use the ``cordappPackages`` constructor parameter (Kotlin) or the ``setCordappPackages`` method on ``MockNetworkParameters`` (Java) when creating the MockNetwork. This will cause the ``AbstractNode`` to use the named packages as sources for CorDapps. All files within those packages will be zipped into a JAR and added to the attachment store and loaded as CorDapps by the diff --git a/docs/source/corda-api.rst b/docs/source/corda-api.rst index bb973b0f05..21040ea968 100644 --- a/docs/source/corda-api.rst +++ b/docs/source/corda-api.rst @@ -9,6 +9,7 @@ The following are the core APIs that are used in the development of CorDapps: api-states api-persistence api-contracts + api-contract-constraints api-vault-query api-transactions api-flows diff --git a/docs/source/generating-a-node.rst b/docs/source/generating-a-node.rst index afbde7127c..614c8084ec 100644 --- a/docs/source/generating-a-node.rst +++ b/docs/source/generating-a-node.rst @@ -23,7 +23,22 @@ into the ``cordapps`` folder. Node naming ----------- -A node's name must be a valid X.500 name that obeys the following additional constraints: +A node's name must be a valid X.500 distinguished name. In order to be compatible with other implementations +(particularly TLS implementations), we constrain the allowed X.500 attribute types to a subset of the minimum supported +set for X.509 certificates (specified in RFC 3280), plus the locality attribute: + +* Organization (O) +* State (ST) +* Locality (L) +* Country (C) +* Organizational-unit (OU) +* Common name (CN) (only used for service identities) + +The name must also obey the following constraints: + +* The organisation, locality and country attributes are present + + * The state, organisational-unit and common name attributes are optional * The fields of the name have the following maximum character lengths: @@ -33,21 +48,22 @@ A node's name must be a valid X.500 name that obeys the following additional con * Locality: 64 * State: 64 -* The country code is a valid ISO 3166-1 two letter code in upper-case - -* The organisation, locality and country attributes are present +* The country attribute is a valid ISO 3166-1 two letter code in upper-case * The organisation field of the name obeys the following constraints: + * Upper-case first letter * Has at least two letters * No leading or trailing whitespace * No double-spacing - * Upper-case first letter * Does not contain the words "node" or "server" - * Does not include the characters ',' or '=' or '$' or '"' or '\'' or '\\' + * Does not include the following characters: ``,`` , ``=`` , ``$`` , ``"`` , ``'`` , ``\`` * Is in NFKC normalization form * Only the latin, common and inherited unicode scripts are supported + * This is to avoid right-to-left issues, debugging issues when we can't pronounce names over the phone, and + character confusability attacks + The Cordform task ----------------- Corda provides a gradle plugin called ``Cordform`` that allows you to automatically generate and configure a set of diff --git a/docs/source/key-concepts-ecosystem.rst b/docs/source/key-concepts-ecosystem.rst index 2e2e900f64..872fb25b57 100644 --- a/docs/source/key-concepts-ecosystem.rst +++ b/docs/source/key-concepts-ecosystem.rst @@ -41,14 +41,4 @@ Nodes can provide several types of services: * One or more pluggable **notary services**. Notaries guarantee the uniqueness, and possibility the validity, of ledger updates. Each notary service may be run on a single node, or across a cluster of nodes. * Zero or more **oracle services**. An oracle is a well-known service that signs transactions if they state a fact and - that fact is considered to be true. - -These components are illustrated in the following diagram: - -.. image:: resources/cordaNetwork.png - :scale: 25% - :align: center - -In this diagram, Corda infrastructure services are those upon which all participants depend, such as the network map -and notary services. Corda services may be deployed by participants, third parties or a central network operator -(such as R3). The diagram is not intended to imply that only a centralised model is supported. \ No newline at end of file + that fact is considered to be true. \ No newline at end of file diff --git a/docs/source/key-concepts-identity.rst b/docs/source/key-concepts-identity.rst index de01ee8295..678c19273e 100644 --- a/docs/source/key-concepts-identity.rst +++ b/docs/source/key-concepts-identity.rst @@ -34,33 +34,6 @@ only shared with those who need to see them, and planned use of Intel SGX, it is privacy breaches. Confidential identities are used to ensure that even if a third party gets access to an unencrypted transaction, they cannot identify the participants without additional information. -Name ----- - -Identity names are X.500 distinguished names with Corda-specific constraints applied. In order to be compatible with -other implementations (particularly TLS implementations), we constrain the allowed X.500 attribute types to a subset of -the minimum supported set for X.509 certificates (specified in RFC 3280), plus the locality attribute: - -* organization (O) -* state (ST) -* locality (L) -* country (C) -* organizational-unit (OU) -* common name (CN) - used only for service identities - -The organisation, locality and country attributes are required, while state, organisational-unit and common name are -optional. Attributes cannot be be present more than once in the name. - -All of these attributes have the following set of constraints applied for security reasons: - - - No blacklisted words (currently "node" and "server"). - - Restrict names to Latin scripts for now to avoid right-to-left issues, debugging issues when we can't pronounce names over the phone, and character confusability attacks. - - No commas or equals signs. - - No dollars or quote marks. - -Additionally the "organisation" attribute must consist of at least three letters and starting with a capital letter, -and "country code" is strictly restricted to valid ISO 3166-1 two letter codes. - Certificates ------------ @@ -82,6 +55,4 @@ business sensitive details of transactions). In some cases nodes may also use pr to the main network map service, for operational reasons. Identities registered with such network maps must be considered well known, and it is never appropriate to store confidential identities in a central directory without controls applied at the record level to ensure only those who require access to an identity can retrieve its -certificate. - -.. TODO: Revisit once design & use cases of private maps is further fleshed out \ No newline at end of file +certificate. \ No newline at end of file diff --git a/docs/source/key-concepts.rst b/docs/source/key-concepts.rst index a252e1a853..902225e2b0 100644 --- a/docs/source/key-concepts.rst +++ b/docs/source/key-concepts.rst @@ -16,7 +16,6 @@ This section should be read in order: key-concepts-identity key-concepts-states key-concepts-contracts - key-concepts-contract-constraints key-concepts-transactions key-concepts-flows key-concepts-consensus diff --git a/docs/source/resources/cordaNetwork.png b/docs/source/resources/cordaNetwork.png deleted file mode 100644 index 907a0172babfd3aaf75e99a74bbb80ddb16b61b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102022 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 From 0129bbe071a940bdbaf61f73c7b408581cc44773 Mon Sep 17 00:00:00 2001 From: Joel Dudley Date: Fri, 8 Dec 2017 17:00:31 +0000 Subject: [PATCH 14/17] Minor corrections to the V2 cheatsheet. --- docs/source/_static/corda-cheat-sheet.pdf | Bin 141625 -> 141589 bytes docs/source/cheat-sheet.rst | 2 +- docs/source/resources/cheatsheet.jpg | Bin 683834 -> 686119 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/_static/corda-cheat-sheet.pdf b/docs/source/_static/corda-cheat-sheet.pdf index b7c3b7d1cb02d15e81828a053ece7ba5f9c0cd7e..382a2d80051cd29d4426a1192bc07b05f5e67b2d 100644 GIT binary patch delta 62411 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∓sT?bL#9?ebPv2n{d1Aj3yV80 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 McuGn!1#$TQ1--wMj{pDw diff --git a/docs/source/cheat-sheet.rst b/docs/source/cheat-sheet.rst index 9a69483f52..991a55a70d 100644 --- a/docs/source/cheat-sheet.rst +++ b/docs/source/cheat-sheet.rst @@ -4,6 +4,6 @@ Cheat sheet A "cheat sheet" summarizing the key Corda types. A PDF version is downloadable `here`_. .. image:: resources/cheatsheet.jpg -:width: 700px + :width: 700px .. _`here`: _static/corda-cheat-sheet.pdf \ No newline at end of file diff --git a/docs/source/resources/cheatsheet.jpg b/docs/source/resources/cheatsheet.jpg index 056b6db83602da4d2b025355c54e04de38b877f5..a2cc9246885a50fbac8c3b66f695b0f0002e109c 100644 GIT binary patch literal 686119 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