-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to java 11 #80
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ThePrez I assume your good with this change to move to Java 11?
We should try to stay at Java 8 since it's a low common denominator that we can rely on being present. Java 11 is not installed on many machines and is also nearing end of support |
@ThePrez The reason we want to upgrade to Java 11 is because the TLS version on Java8 will be incompatible with clients running more recent versions of node. See Mapepire-IBMi/mapepire-js#42 (comment). It looks like Java 11 can be easily installed on IBM i 7.3 and up https://www.ibm.com/support/pages/download-installation-and-usage-java-11-ibm-i-os We also already have customers hitting issues with mapepire-server running on Java8 #79 |
@jonnyz32 dotnet clients have the same TLS issues as Node.js. Newer versions of Java will help for sure, but if we swap Java versions, it will add a new dependency for Mapepire that the client will need to have before they can use it. @ThePrez Perhaps next major release of Mapepire increases the Java version. |
Do we have a failing pcap trace to show what the client and server handshakes look like? There's gotta be a way to get our server talking the right proto reliably I assume the clients want TLS 1.3? |
After more investigation, I found that we can get by using Java 8, but it must be at least version 341 https://www.oracle.com/java/technologies/javase/8u341-relnotes.html#R180_341. This version provides addiotional TLS support which was not had in previous versions. When debugging the TLS handshake, it seems the agreed upon cipher suite using 341 was TLS_AES_256_GCM_SHA384, which is not available in previous versions. When using older java versions, an error is presented that there are no compatible cipher suites
I propose we check the java version in the application code, and if java < 1.8.0_341 issue an error saying a java upgrade is required. @worksofliam @ThePrez What do you think? |
Closing as we now have a check to ensure java >= 1.8.0_341 |
Tested with the js client to make sure everything gucci