JDK-8233417 : JEP 244: TLS Application-Layer Protocol Negotiation Extension (Java SE 8)
  • Type: CSR
  • Component: security-libs
  • Sub-Component: javax.net.ssl
  • Priority: P2
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: 8u41
  • Submitted: 2019-11-01
  • Updated: 2022-04-21
  • Resolved: 2019-11-14
Related Reports
CSR :  
Relates :  
Description
Summary
-------

Add support for JEP 244: TLS Application-Layer Protocol Negotiation Extension in Java SE 8.

Problem
-------

APIs to support a Transport Layer Security (TLS) feature called Application Layer Protocol Negotiation (ALPN) [1] were introduced in Java SE 9 under JEP 244 (JDK-8051498). Customers have requested ALPN in Java SE 8 to support features like HTTP/2.

To preserve compatibility with newer platform releases, the Java SE 9 ALPN APIs will be backported to Java SE 8.

[1] https://tools.ietf.org/html/rfc7301


Solution
--------

Backport the Java SE 9 ALPN APIs.

There are two API bugs to be backported:

APIs:

JDK-8144093: JEP 244/8051498 - TLS Application-Layer Protocol Negotiation Extension

JDK-8170282: Enable ALPN parameters to be supplied during the TLS handshake

Specification
-------------

See the attached webrev for full details.  I am including all non-trivial changes to the API files, which include:

1.  A short javadoc narrative on using the new methods.

2.  Several new fields/methods were added.

Comments
As noted by [~wetmore], 8u41 refers to the spec version for the MR of the Java SE 8 spec. When the changes are put into another 8 update release, the CSR can be updated and have a nominal re-review at that time.
14-11-2019

Initial MR release will be 8u41, we expect to put this into a later release.
14-11-2019

Moving to Provision for 8-pool. Please reset fixVersion to the intended exact release or a more specific 8-pool value before finalizing the request.
13-11-2019