Commit Graph

775 Commits

Author SHA1 Message Date
532d95ccac ENT-1565 Enable the use of BoringSSL (#1358)
* BoringSsl dependency

* Merge over boring_ssl changes

* Merge over boring_ssl changes

*  Upgrade netty-tcnative (and netty to compatible version)

* Add openSSL flag to SSLConfiguration and implementations.

* Make SSL implementation switchable for Artemis

* Parameterize AMQP bridge tests on use of openSSL

* Plumb through open SSL flag to AMQP client/server.

* Add open ssl flag to reference.conf

* Slight clean-up

* Add LoggingTrustManagerWrapper for OpenSsl contexts

* Remove unneeded lazy and check for double wrapping

* Fix TrustMangerWrapper and test, clean-up

* Add key factory wrapper to get the current certificate chain out.

* Use cert chain returning key mananager factory to get local cert

* Force consistent netty-tcnative version across all dependencies

* Make proton wrapper tests check all combinations of client/server native/java SSL

* Add test netty server/client to run SSL tests with

* Simplify usage of test netty components and clean up

* Improve exception handling in NettyTestHandler

* Add openSSL test for X509UtilitiesTests

* Expose engine for test usage

* Add the X509 peer chain check from the socket based test

* Port of TLSAuthenticationTests to use Netty so we can use different SSL providers, add boringSSL tests

* Adapt tests to new config structure

* Readd `useOpenSsl` configuration

* Readd `useOpenSsl` configuration

* Fix up ArtemisTransport for OpenSSL plus tests

* Adapt auth tests

* Formatting

* Remove obsolte file

* Fix config misnomer

* Add SNI host logic to OpenSSL execution branch

* Remove TLS_DHE_RSA tests

* Make exception handling in the netty test infra deterministic
2018-10-01 13:59:52 +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
325336e4c3 Merge commit 'adcd0d45dfd5433a70a551c49b5c828f13667606' into christians/os-merge-adcd0d4 2018-09-27 15:03:25 +01:00
878bd4da8c Remove TLS_DHE_RSA cipher family (#3987) 2018-09-25 22:58:47 +01:00
9657c03544 ENT-2253 NonStop database - NonStop SQLMX Hibernate dialect doesn't support Hibernate validation and the value is left blank. (#1400) 2018-09-21 17:10:27 +01:00
752069466c Merge remote-tracking branch 'open/master' into bogdan-merge-210918 2018-09-21 11:36:36 +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
5139ac3d01 CORDA-2001: added SNI header to TLS connections based on hashed CordaX500 (#3968)
* CORDA-2001: added SNI header to TLS connections based on hashed CordaX500

* CORDA-2001: added newline

* CORDA-2001: truncate hashed x500 to pass IDN validations

* CORDA-2001: convert hostname to lower case

* CORDA-2001: to lower after truncating, use of better suited method

* CORDA-2001: to lower after truncating, use of better suited method

* CORDA-2001: correctly set ssl parameters in the engine
2018-09-20 16:22:27 +01:00
38c85d1711 CORDA-2009 update to BC 1.60 (security fixes) (#3974)
* update to BC 1.60 (security fixes)

* adding key combination keystore/cert tests
2018-09-20 13:11:32 +01:00
ae4dfc93da CORDA-2002: Adding new Cordform bootstrap endpoint to move Cordapp JA… (#3963)
* CORDA-2002: Adding new Cordform bootstrap endpoint to move Cordapp JAR copying back into Cordform
2018-09-19 16:23:09 +01:00
492c25fedd CORDA-1995 removing DigitalSignatureWithCertPath (#3953)
* CORDA-1995 removing DigitalSignatureWithCertPath

* Fixing unit tests

* Addressing review comments
2018-09-19 14:30:21 +01:00
5113f4c8c1 [CORDA-1941]: Server-side draining node shutdown. (#3909) 2018-09-18 13:04:26 +02:00
a10323ed0f Merge commit 'df4699c69abc8aab7e1e44b602c762212cbf93f6' into chrisr3-os-merge 2018-09-17 14:01:09 +01:00
137f7664c1 CORDA-1986 Ensure key alias format is supported by the major HSM vendors (#3950) 2018-09-17 10:19:34 +01:00
4602a21a35 Merge pull request #1391 from corda/chrisr3-os-merge
Merge from Open Source
2018-09-13 15:14:50 +01:00
725441b39c Minor changes to bring in-sync with OS (#1390) 2018-09-13 12:53:06 +01:00
fba96a53fa Update remaining shadow plugin usages, remove cordform-common from,node. 2018-09-13 11:42:58 +01:00
96597ba084 Merge commit '1c7dfd4b7b310e86b8aa973b8350487ba63c08b1' into chrisr3-os-merge 2018-09-13 11:06:52 +01:00
0c1910722b ENT-2489: Gracefully handle session that might have already been closed. (#3933) 2018-09-13 09:16:24 +01:00
46cbfefc77 Merge remote-tracking branch 'open/master' into os-merge-4f8a564
# Conflicts:
#	experimental/behave/src/main/kotlin/net/corda/behave/process/Command.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
2018-09-07 14:49:52 +01:00
458bedd936 Merge pull request #1374 from corda/anthony-os-merge-20180906
O/S Merge 20180906
2018-09-07 12:14:23 +01:00
230d91046c Merge commit '20cd4539d637676ac55457fc7fe4df2ce8dacff8' into anthony-os-merge-20180906
# Conflicts:
#	node/capsule/build.gradle
2018-09-06 16:03:39 +01:00
8ad540d1c7 Move identity alias prefixes from DevIdentityGenerator to X509Utilities (#3902) 2018-09-06 15:48:59 +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
eb7cdda8a8 ENT-2247: node will deal with loss of broker according to configuration (#1373) 2018-09-06 11:37:13 +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
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
11e2bef240 ENT-2473: Removed copyright headers (#1364) 2018-09-03 16:38:52 +01:00
8e6a9818b7 CORDA-1932 Fixing network map certificate path verification (#3843)
* CORDA-1932 Fixing network map certificate path verification to be certificate hierarchy agnostic

* Addressing review comments
2018-08-31 09:35:36 +01:00
d7b85b4928 CORDA-1934 Renaming INTERMEDIATE_CA certificate role to DOORMAN_CA certificate role (#3844) 2018-08-31 09:35:06 +01:00
b98f91ee61 Merge remote-tracking branch 'remotes/origin/master' into feature/ENT-2253-NonStop-changes
# Conflicts:
#	node/src/main/resources/migration/node-info.changelog-master.xml
#	node/src/main/resources/migration/node-info.changelog-v3.xml
2018-08-30 15:51:38 +01:00
dbc1088417 CORDA-1939 Regression: Liquibase fails to migrate existing pre-liquibase database (#3855)
* Bugfix for corda.jar manually deployed without coping the matching corda-finance-VERSION.jar.
If the older finance cordapp version is detected (which doesn't have Liquibase migration scripts) fail node at startup and print message: "Could not create the DataSource: Detected incompatible corda-finance cordapp without database migration scripts, replace the existing corda-finance-VERSION.jar with the latest one."
Since coda-finance is an optional cordapp,the presence of Liquibase scripts is only checked if corda-finance-VERSION.jar is present in cordapps folder.
*  Allow to start using Liquibase from any point of 4.0-SNAPSHOT before Liquibase was introduced (not only from 3.0/3.X versions) - 2 database changes introduced after 3.2 but before Liquibase are now conditional database changes.
2018-08-30 13:40:02 +01:00
b6bd923f3b Resolve merge conflicts 2018-08-30 10:31:38 +01:00
43f7b8477e Merge commit 'bc330bd9890d41904bbeea6e579f5fc4438872b6' into christians/merge-ENT-2414 2018-08-28 12:26:57 +01:00
f81428eb53 Corda 1916: signature attachment constraints (#3839)
* Create constraint, extract Jar signature collection

* Extract JarSignatureCollector into its own file

* Jar signature collection throws exception if signatures are inconsistent

* Focus testing in Jar signature collection

* Extract some helper functions in test

* Patch tests with mock attachment storage

* Assert that generated constraint is satisfied by signed attachment

* Clarify constraint selection logic

* Explicit return types on extension methods

* Link to docsite Signature Contrainsts documentation

* Fix issue with shared JAR reading buffer
2018-08-24 17:21:54 +01:00
bc330bd989 ENT-2414 Named caches (#3848)
* Add named caches and apply to NonInvalidingUnboundCache and all usages.

* Add named caches and apply to NonInvalidingCache and all usages.

* Add named caches and apply to NonInvalidingWeightBasedCache and all usages.

* Move NamedCache to core/internal

* Remove type `NamedCache` and `NamedLoadingCache`

* Suppressed 'name not used' warning, added comment, and fixed generic parameters on the buildNamed functions.

* Use `buildNamed` in all caffeine instances in production code. Not using it for caches that are created in test code.

* Add checks for the cache name

* Formatting

* Minor code review revisions
2018-08-24 17:17:22 +01:00
042b91814a Merge pull request #3834 from corda/mike-rpc-propagate-deser-errors
Propagate RPC deserialisation faults back to the caller
2018-08-24 16:52:23 +01:00
3594ccd89b CORDA-1924: Remove references to Cordform definition and cordform-common (#3842) 2018-08-24 16:29:14 +01:00
8fd4d0d218 RPC: propagate failures when they occur during deserialization.
Before this change, a failure to deserialize an RPC reply would leave
the caller hanging because we'd never set the future.
2018-08-24 15:16:55 +02:00
c7f666102f Fixes after merge remote-tracking branch 'remotes/open/master' into szymonsztuka/os-merge-20180824 2018-08-24 12:27:47 +01:00
598e3a327a Merge remote-tracking branch 'remotes/open/master' into szymonsztuka/os-merge-20180824
# Conflicts:
#	build.gradle
#	core/src/main/kotlin/net/corda/core/schemas/PersistentTypes.kt
#	finance/src/main/kotlin/net/corda/finance/schemas/CashSchemaV1.kt
#	finance/src/main/kotlin/net/corda/finance/schemas/CommercialPaperSchemaV1.kt
#	finance/src/main/resources/migration/cash.changelog-init.xml
#	finance/src/main/resources/migration/cash.changelog-master.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-init.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-master.xml
#	finance/src/main/resources/migration/commercial-paper.changelog-v1.xml
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/MigrationHelpers.kt
#	node-api/src/main/kotlin/net/corda/nodeapi/internal/persistence/SchemaMigration.kt
#	node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt
#	node/src/main/kotlin/net/corda/node/internal/schemas/NodeInfoSchema.kt
#	node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt
#	node/src/main/kotlin/net/corda/node/services/schema/NodeSchemaService.kt
#	node/src/main/resources/migration/common.changelog-init.xml
#	node/src/main/resources/migration/common.changelog-master.xml
#	node/src/main/resources/migration/node-core.changelog-init.xml
#	node/src/main/resources/migration/node-core.changelog-master.xml
#	node/src/main/resources/migration/node-core.changelog-pkey.xml
#	node/src/main/resources/migration/node-core.changelog-postgres-blob.xml
#	node/src/main/resources/migration/node-core.changelog-tx-mapping.xml
#	node/src/main/resources/migration/node-core.changelog-v3.xml
#	node/src/main/resources/migration/node-core.changelog-v4.xml
#	node/src/main/resources/migration/node-info.changelog-init.xml
#	node/src/main/resources/migration/node-info.changelog-master.xml
#	node/src/main/resources/migration/node-info.changelog-v1.xml
#	node/src/main/resources/migration/node-info.changelog-v2.xml
#	node/src/main/resources/migration/node-notary.changelog-init.xml
#	node/src/main/resources/migration/node-notary.changelog-master.xml
#	node/src/main/resources/migration/node-notary.changelog-pkey.xml
#	node/src/main/resources/migration/node-notary.changelog-v1.xml
#	node/src/main/resources/migration/vault-schema.changelog-init.xml
#	node/src/main/resources/migration/vault-schema.changelog-master.xml
#	node/src/main/resources/migration/vault-schema.changelog-pkey.xml
#	testing/node-driver/src/main/kotlin/net/corda/testing/node/MockServices.kt
2018-08-24 12:23:30 +01:00
487cad7d06 CORDA-1471 Database schema setup for internal tables via Liquibase (#3815)
Internal tables (the tables from node and finance modules) are now tracked /created by Liquibase script.
Tables backing MappedSchemma in Cordapps are created by Hibernate (as before). 
The PR scope added Liquibase library, setup code SchemaMigration and XML scripts and from Enterprise.
For existing database installation - the node will auto-upgrade to use Liquibase.
Method migrateOlderDatabaseToUseLiquibase checks for any 3.X existing Corda database to upgrade database to use Liquibase. When the existing database without Liquibase integral tables is detected, the node (at startup) will create Liquibase tracking tables and fill them with all migration scripts (marked as done), this ensure the database will look as it would use Liquibase from the beginning.
The database changes gradually introduced by the subsequent 3.X releases (3.1, 3.2) are conditionally run by Liquibase.
2018-08-23 16:30:02 +01:00
e508033201 Merge remote-tracking branch 'remotes/open/master' into parkri-os-merge-20180809-1 2018-08-09 09:33:38 +01:00
0c7e0f6dbb Bumped minimum platform version for the bootstrapper from 1 to 4 to unlock reference states. (#3753) 2018-08-08 12:09:47 +01:00