Remove uses of classes in javax.security.cert #1468
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Efforts are underway in the OpenJDK project to remove the long deprecated-for-removal classes in the package javax.security.cert. These classes were introduced for backwards compatibility concerns with the unbundled JSSE release for JDK 1.2/1.3, but their use have been discouraged since they were introduced.
It would be good to update Undertow to not depend on / use these archaic APIs.
See https://bugs.openjdk.org/browse/JDK-8227024 and the corresponding CSR https://bugs.openjdk.org/browse/JDK-8227395
Changes:
SSLSessionInfo.getPeerCertificateChainand its overrides inBasicSSLSessionInfo,ConnectionSSLSessionInfoandHttp2SslSessionInfojavax.security.cert.CertificateExceptioninAjpRequestParseState.createSslSessionInfoCertificates.toPemwhich takesjavax.security.cert.X509Certificateas parameter and seems unusedSSLEngine.getHandshakeSessionand returns a custom, mostly no-opSSLSession. SincegetHandshakeSessiondoes not seem to be called, I opted to simply remove this override and the custom SSLSession implementation. This way we also don't need to implementSSLSession.getPeerCertificateChainwhich returnsjavax.security.cert.X509Certificate[]. Please advice if this override actually has a purpose and we'll need to maintain it somehow.