Commit Graph

567 Commits

Author SHA1 Message Date
b05a985d99 OS->Ent merge 2018-10-22 12:57:37 +01:00
88f368134f ENT-2610: Separate passwords for store and for private keys in Corda OS. (#4090)
* ENT-2610: Separate passwords for store and for private keys in Corda OS.

When it comes to KeyStores there are *2* passwords: 1 for the keyStore as a whole and separately there is one private keys within this keyStore.
Unfortunately, those 2 passwords have to be the same due to Artemis limitation, for more details please see:
`org.apache.activemq.artemis.core.remoting.impl.ssl.SSLSupport.loadKeyManagerFactory`
where it is calling `KeyManagerFactory.init()` with store password.

Before change in this PR, throughout our codebase there are multiple places where we assume that storePassword is the same as keyPassword, even in the classes that have nothing to do with Artemis.
This is of course less than ideal as TLS communication may be used not only for Artemis connectivity (e.g. Bridge/Float interaction in Ent) and it is unfair to impose same passwords constraint on that communication channel.
Therefore this PR is removing this limitation and properly separating storePassword from keyPassword.

Linked Jira(https://r3-cev.atlassian.net/browse/ENT-2610) has for more background info.

Suggest to start review from `net.corda.core.crypto.X509NameConstraintsTest` to get an idea about the nature of the changes made.

* ENT-2610: Address PR input from @kchalkias

* ENT-2610: Address PR input from @kchalkias, s/privateKeyPassword/entryPassword/

* ENT-2610: Address PR input from @kchalkias, s/keyPassword/entryPassword/

In the implementation of `CertificateStoreSupplier`
2018-10-22 07:11:27 +01:00
e56d84fd5d Merge OS -> ENT 2018-10-21 21:57:37 +01:00
e1b86d0422 Fix up errors 2018-10-19 08:05:15 +01:00
b571e16d0d Merge remote-tracking branch 'remotes/open/master' into parkri-os-merge-20181018-1 2018-10-19 08:02:59 +01:00
7cfd44e383 CORDA-2113 - Include PNM ID in CSR (#4086)
* CORDA-2113 - Include PNM ID in CSR

If Compatibility Zone operator is using private networks and the node
should be joining one, optionally the ID (a UUID) of that network can be
included as part of the node's CSR to to the Doorman.

* fix broken test
2018-10-18 15:39:42 +01:00
55731ef816 ENT-2431 Tidy up buildNamed and CacheFactory 2018-10-18 10:38:43 +01:00
9b6eb02bab Merge fixes 2018-10-15 13:51:18 +01:00
958f5dd65f Merge remote-tracking branch 'open/master' into os-merge-6d4bdb8
# Conflicts:
#	docs/source/changelog.rst
#	node-api/build.gradle
#	node/src/integration-test/kotlin/net/corda/node/flows/AsymmetricCorDappsTests.kt
#	node/src/integration-test/kotlin/net/corda/node/flows/FlowCheckpointVersionNodeStartupCheckTest.kt
#	node/src/integration-test/kotlin/net/corda/node/modes/draining/FlowsDrainingModeContentionTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/TestCordappDirectories.kt
2018-10-15 12:34:29 +01:00
3981a88301 Merge branch 'open/master' into andrius/merge-10-15 2018-10-15 10:50:12 +01:00
2c9a942e1a CORDA-2088: Simplified the TestCordapp public API (#4064)
The entry point to the API has been simplified to just requireing a list of packages to scan, with sensible defaults provided for the metadata. Because of the wither methods, having parameters for the metadata (with default values) seems unnecessary. Also the ability to scan just individual classes has been made internal, as it seems unlikely app developers would need that level of control when testing their apps.

TestCordappImpl is a data class and thus acts as a natural key for the Jar caching, where previously the key was the package names. This fixes an issue where it was not possible to create two CorDapp Jars of the same package but different metadata.
2018-10-15 10:11:18 +01:00
aced03df54 CORDA-1274: Migrated usage of FastClasspathScanner to ClassGraph (#4060)
FastClasspathScanner was renamed to ClassGraph for the version 4 release
2018-10-11 19:50:26 +01:00
0e68f26c0f ENT-2569: Clean-up content of registeredShutdowns. (#4048)
Please see comment for more info.
2018-10-10 17:52:00 +01:00
504cefc6f6 CORDA-535: Move MySQL notary into a separate module 2018-10-10 16:07:16 +01:00
b7d59785e7 Merge remote-tracking branch 'open/master' into andrius/merge-10-10 2018-10-10 10:45:21 +01:00
9ebeac1ad8 CORDA-535: Extract notary implementations into CorDapps (#3978)
* Move Raft and BFT notaries into separate modules

* Move schemas

* Fix tests & demos

* Modified logic for creating notary services:

Added a new field 'className' to the notary configuration. The node now
loads the specified implementation via reflection. The default className
value points to the simple notary implementation for backwards compatibility.
Relevant schemas are loaded in a similar fashion.

For backwards compatibility purposes the default SimpleNotaryService will
remain built-in to node, but its cordapp will be generated on startup – so
the loading of notary services is streamlined.

* Move test namedcache factory to test utils
2018-10-10 10:04:22 +01:00
4cb31f4c8b Merge commit '39434dcbecdd2cd656e40622530e84d02443b8e2' into chrisr3-os-merge 2018-10-08 10:42:55 +01:00
bffac331a3 Moved the PLATFORM_VERSION constant to core and added some missing usages (#4026) 2018-10-05 09:28:00 +01:00
63ae29d153 OS->Ent merge 2018-10-01 14:45:01 +01:00
8bbc0d9f43 ENT-2431 Add caching metrics, consolidate tracing config and better default cache sizes (#1418) 2018-10-01 14:28:03 +01:00
f2c0beb8d0 ENT-2530 Corda fails when running against PostgreSQL with uppercase schema namespace. (#1412)
Fix Liquibase quoting strategy for PostgreSQL to follow Corda convention.
In Liquibase for Postgres if schema name has uppercase or lowercase characters only then Liquibase would send it without double quotes and effectively make them lowercase.
Alter Postgres Liquibase dialect to wrap schema names in double quotes. This allows e.g. schemaName=ALICE be send as "ALICE" by Liquibase.
Corda persistence was already wrapping with double quotes, but certain cases in Liquibase were not following this. The result was that SQL run by Liquibase couldn't find schema (e.g. select ALICE.tablename ... in Postgres matched alice schema name not ALICE one).
The fix enables one integration test to be run now against standalone databases.
2018-10-01 12:04:57 +01:00
842eac5c43 [CORDA-1926] Implement target version and min platform version (#3899)
https://r3-cev.atlassian.net/browse/CORDA-1926
2018-09-28 09:46:06 +01:00
06150371ad CORDA-1726 Make sure test frameworks and nodes refuse to start on any… (#3993)
* CORDA-1726 Make sure test frameworks and nodes refuse to start on anything except the right Java versions

Move isValidJavaVersion(), hasMinimumJavaVersion() to Node as it can be use for check in DriverDSL for starting in-process node,
in-process node doesn't go via NodeStartup class where the correct Java version is checked.

Added safeguard to hasMinimumJavaVersion as some JDKs distributions may not have the update version number (e.g. AdoptOpenJDK) which causes unintended parse exception.

* CORDA-1726 Make sure test frameworks and nodes refuse to start on anything except the right Java versions - remove new test, for proper testing this would use reflection and field setting visibility modifiers which easly can has side effects on the subsequent tests

* Addressing PR comments.
2018-09-27 19:01:01 +01:00
5469e41458 Merge remote-tracking branch 'remotes/open/master' into parkri-os-merge-20180924-1
# Conflicts:
#	core/src/main/kotlin/net/corda/core/internal/NamedCache.kt
#	docs/source/index.rst
#	node/src/integration-test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/PersistentNetworkMapCacheTest.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/services/messaging/P2PMessageDeduplicator.kt
#	node/src/main/kotlin/net/corda/node/services/messaging/P2PMessagingClient.kt
#	node/src/main/kotlin/net/corda/node/services/persistence/DBTransactionStorage.kt
2018-09-24 10:13:01 +01:00
965f9ce528 ENT-2431 Lay foundations for caching metrics (#3955) 2018-09-24 09:55:56 +01:00
ae2b96df41 Fix integration tests in database mode (#1401)
Add SQL setup in new test classes which were missing it.
Ignoring H2 tests when running against standalone database.
Revert datasource Enterprise specific configuration for RaftTransactionCommitLogTests.kt test, and mark it as required for test in database mode.
2018-09-21 15:03:46 +01:00
dc25fc28b7 Merge remote-tracking branch 'remotes/open/master' into corda/os-merge-20-09-2018
# Conflicts:
#	core-deterministic/build.gradle
#	core/src/test/kotlin/net/corda/core/utilities/KotlinUtilsTest.kt
#	node/src/integration-test/kotlin/net/corda/node/BootTests.kt
#	node/src/integration-test/kotlin/net/corda/node/flows/AsymmetricCorDappsTests.kt
#	node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt
#	node/src/main/kotlin/net/corda/node/internal/CordaRPCOpsImpl.kt
#	node/src/main/kotlin/net/corda/node/serialization/kryo/Kryo.kt
#	node/src/main/kotlin/net/corda/node/serialization/kryo/KryoSerializationScheme.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/InternalTestUtils.kt
2018-09-20 16:39:34 +01:00
19b8f70117 [CORDA-1996]: Apply error code to exceptions that do not propagate to NodeStartup. (#3964) 2018-09-19 14:24:21 +02:00
4c68b515f8 ENT-2489: Experiment with multi-identity RPC worker (#1377)
* ENT-2489: Trivial change to prep for multiple RpcWorkerServiceHubs (i.e. identities)

* ENT-2489: Allow passing `targetLegalIdentity` from Client RPC call.

* ENT-2489: Starting RpcWorker with multiple RpcWorkerServiceHubs (unfinished)

* ENT-2489: Starting RpcWorker with single (for now) RpcWorkerServiceHub

* ENT-2489: Tighten-up integration tests assertions

* ENT-2489: Introduce RPCOpsRouting

* ENT-2489: Output configs for reference

* ENT-2489: Extend test for RpcWorker to operate with multiple identities.

* ENT-2489: Remove un-necessary P2P address

* ENT-2489: New test for RpcWorker getting paid.

* ENT-2489: Make RpcWorkerMultiIdentityTest work

* ENT-2489: Use MAX_RPC_MESSAGE_SIZE when configuring RPC broker.

* ENT-2489: Add exception clause when client attempts to use the wrong identity.

* ENT-2489: Fixes post merge from `master`.

* ENT-2489: Fixes post merge from `master`.

* ENT-2489: Explicitly specify X500 name in test.

* ENT-2489: Use single flow worker and switch anonymity off when making payment.

* ENT-2489: Fix for RpcWorkerTest.

Add `NetworkMapUpdater` to `FlowWorkerServiceHub` or else no-one will ever send a signal on `networkMapCache.nodeReady` future.
Not having `networkMapCache.nodeReady` in completed state, will prevent SMM from operating properly.

* ENT-2489: Handle gracefully the fact that session might be already closed.

* ENT-2489: Fix incorrect merge from `master`.

* ENT-2489: Make `RPCOpsRouting` generic with regard to `RPCOps` following discussion with @mnesbit

* ENT-2489: Make `methodTable` uniform for all the legal names.

* ENT-2489: Make `ObservableContext` non-generic.

* ENT-2489: Tidy-up shutdown sequence post merge from `master`

* ENT-2489: Correct exception type thrown

* ENT-2489: Generics test compilation fix.
2018-09-19 11:04:37 +01:00
5113f4c8c1 [CORDA-1941]: Server-side draining node shutdown. (#3909) 2018-09-18 13:04:26 +02:00
d22bab98fa Merge remote-tracking branch 'open/master' into os-merge-c79dd80
# Conflicts:
#	docs/source/changelog.rst
#	docs/source/clientrpc.rst
#	node/src/integration-test/kotlin/net/corda/node/services/network/NetworkMapTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/rpc/RpcExceptionHandlingTest.kt
#	node/src/main/kotlin/net/corda/node/internal/rpc/proxies/ExceptionMaskingRpcOpsProxy.kt
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt
2018-09-17 17:12:50 +01:00
c79dd8017d CORDA-1264: Mask internal errors if devMode is false (#3942) 2018-09-17 15:44:51 +01:00
725441b39c Minor changes to bring in-sync with OS (#1390) 2018-09-13 12:53:06 +01:00
45b2417910 Merge remote-tracking branch 'open/master' into os-merge-7459115
# Conflicts:
#	node/src/integration-test/kotlin/net/corda/node/amqp/ProtonWrapperTests.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	tools/shell/src/integration-test/kotlin/net/corda/tools/shell/InteractiveShellIntegrationTest.kt
2018-09-11 13:26:48 +01:00
ec55397335 Record Hikari metrics (#3912) 2018-09-10 13:13:58 +01:00
230d91046c Merge commit '20cd4539d637676ac55457fc7fe4df2ce8dacff8' into anthony-os-merge-20180906
# Conflicts:
#	node/capsule/build.gradle
2018-09-06 16:03:39 +01:00
20cd4539d6 Fixed broken master. (#3906) 2018-09-06 15:07:03 +01:00
793ee3e1ee Store default platform version in a constant (#3900)
* use constant for default platform version value when tests with out of process nodes are run from Intellij.

* node will use constant for platform version instead of manifest file(RPC already uses the constant, no sense in having 2 sources for it)

* fix issues caused by merge
2018-09-06 14:32:23 +01:00
584387d5ec Fixed some problem I discovered while working on another story (#3901)
* - Fixed some problems with error handling for Observables.
- Eliminated incorrect double `stop()` call for RpcBroker.
- Added `Schedulers.shutdown()` call in `stop()` implementation for Node and Driver, to avoid stuck processes when observable pipelines go wrong.

* Fixed a missing import.

* Removed `Schedulers.shutdown()` for now.

* Fixed an issue with `pendingFlowsCount()` function.
2018-09-06 13:11:41 +01:00
b8a4b68495 Merge remote-tracking branch 'open/master' into anthony-os-merge-20180906
# Conflicts:
#	docs/source/contributing-index.rst
#	docs/source/contributing.rst
#	docs/source/running-a-node.rst
#	node/src/integration-test/kotlin/net/corda/node/services/messaging/ArtemisMessagingTest.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/PersistentNetworkMapCacheTest.kt
#	node/src/main/kotlin/net/corda/node/Corda.kt
#	node/src/main/kotlin/net/corda/node/NodeArgsParser.kt
#	node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt
#	node/src/main/kotlin/net/corda/node/services/config/ConfigUtilities.kt
2018-09-06 11:20:45 +01:00
304dba704e Support HA without load balancer (#3889)
Allow configuration in node for additional advertised addresses.

fix logic error

Use empty list as default config not null

Allow multiple addresses in NodeInfo

Describe new additionalP2PAddresses property in docs.

Add integration test of additionalP2PAddress feature

Fixup after rebase

Address PR comment

Address PR comments by removing unused element of NodeAddress
2018-09-05 17:46:46 +01:00
481f2c1b93 Fixed compilation error for case-insensitive operating systems. (#3896)
(cherry picked from commit 2fbeab1365)
2018-09-05 13:10:05 +01:00
2fbeab1365 Fixed compilation error for case-insensitive operating systems. (#3896) 2018-09-05 13:06:05 +01:00
31e58dd2e5 [CORDA-1937]: Fixes to enterprise float and bridge. 2018-09-04 11:20:34 +01:00
fbaa31e9d2 Merge remote-tracking branch 'open/master' into os_ent_merges/CORDA-1937
# Conflicts:
#	client/rpc/src/main/kotlin/net/corda/client/rpc/internal/CordaRPCClientUtils.kt
#	core/src/main/kotlin/net/corda/core/internal/InternalUtils.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/ArtemisMessagingClient.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/bridging/AMQPBridgeManager.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/bridging/BridgeControlListener.kt
#	node/src/integration-test/kotlin/net/corda/node/NodeKeystoreCheckTest.kt
#	node/src/integration-test/kotlin/net/corda/node/amqp/AMQPBridgeTest.kt
#	node/src/integration-test/kotlin/net/corda/node/amqp/ProtonWrapperTests.kt
#	node/src/integration-test/kotlin/net/corda/node/services/network/NetworkMapTest.kt
#	node/src/integration-test/kotlin/net/corda/services/messaging/MQSecurityTest.kt
#	node/src/main/kotlin/net/corda/node/internal/Node.kt
#	node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt
2018-09-04 11:07:50 +01:00
5356eddcca Fix another case where platformVersion=1 2018-09-04 11:33:50 +02:00
d01dd22419 [CORDA-1937]: Refactor NodeConfiguration hierarchy. (#3856) 2018-09-04 10:26:10 +01:00
97aef9c8a1 Merge remote-tracking branch 'open/master' into mike-merge-f6ee263db10 2018-09-03 20:13:38 +02:00
33f5aa4190 RPC: make the client library require the platform version it is built for.
Remove an unnecessary override on the CordaRPCOps interface.
2018-09-03 19:05:47 +02:00
11e2bef240 ENT-2473: Removed copyright headers (#1364) 2018-09-03 16:38:52 +01:00