Go to file
Bruno Harbulot f5fab38988 Using distinct aliases when building the trust manager factory, and renamed trustCertChain into trustCertCollection.
Motivation:

SSLContext.buildTrustManagerFactory(...) builds a KeyStore to
initialize the TrustManagerFactory from an array of X509Certificates,
assuming that array is a chain and that each certificate will have a
unique Subject Distinguised Name.
However, the collection of certificates used as trust anchors is generally
not a chain (it is an unordered collection), and it is legitimate for it
to contain multiple certificates with the same Subject DN.
The existing code uses the Subject DN as the alias name when filling in
the `KeyStore`, thereby overwriting other certificates with the same
Subject DN in this collection, so some certificates may be discarded.
In addition, the code related to building trust managers can take an array of
X509Certificate instances to use as trust anchors. The variable name is
usually trustCertChain, and the documentation refers to them as a "chain".
However, while it makes sense to talk about a "chain" from a keymanager
point of view, these certificates are just an unordered collection in a
trust manager. (There is no chaining requirement, having the Subject DN
matching its predecessor's Issuer DN.)
This can create confusion to for users not used with PKI concepts.

Modifications:

SSLContext.buildTrustManagerFactory(...) now uses a distinct alias for each
array (simply using a counter, since this name is never used for reference
later). This patch also includes a unit test with CA certificates using the
same Subject DN.
Also renamed trustCertChain into trustCertCollection, and changed the
references to "chain" in the Javadoc.

Result:

Each loaded certificate now has a unique identifier when loaded, so it is
now possible to use multiple certificates with the same Subject DN as
trust anchors.
Hopefully, renaming the parameter should also reduce confusion around PKI
concepts.
2016-03-22 21:29:33 +01:00
all [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
buffer Fix setBytes when source is read-only ByteBuffer and target is pooled buffer 2016-03-22 09:19:39 +01:00
codec [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
codec-http Drop broken DefaultCookie name validation, close #4999 2016-03-22 12:32:28 +01:00
codec-socks [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
common [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
example [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
handler Using distinct aliases when building the trust manager factory, and renamed trustCertChain into trustCertCollection. 2016-03-22 21:29:33 +01:00
license Let PoolThreadCache work even if allocation and deallocation Thread are different 2015-05-27 14:35:22 +02:00
microbench [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
tarball [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
testsuite [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
transport [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
transport-native-epoll [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
transport-udt [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:37:12 +09:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:18:14 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Let PoolThreadCache work even if allocation and deallocation Thread are different 2015-05-27 14:35:22 +02:00
pom.xml [maven-release-plugin] prepare for next development iteration 2016-03-21 10:34:26 +01:00
README.md Updating Branches to look section to match the current branching structure of the project 2016-03-10 22:09:30 +01:00
run-example.sh Add logLevel property to enable different log levels for the examples. 2014-11-21 10:48:13 +09:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

Development of all versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.