RFR: 8326381: com.sun.net.httpserver.HttpsParameters and SSLStreams incorrectly handle needClientAuth and wantClientAuth [v6]
Daniel Jeliński
djelinski at openjdk.org
Tue Feb 27 13:00:54 UTC 2024
On Mon, 26 Feb 2024 11:36:23 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> Can I please get a review of this change which proposes to fix https://bugs.openjdk.org/browse/JDK-8326381?
>>
>> As noted in the JBS issue, the implementation in `setNeedClientAuth()` and `setWantClientAuth()` of `com.sun.net.httpserver.HttpsParameters` wasn't matching the API specification. The commit in this PR fixes that issue and it now matches the API specification as well as what is done in `javax.net.ssl.SSLParameters` class.
>>
>> Additionally, as noted in the JBS issue, the (internal class) `sun.net.httpserver.SSLStreams` had a bug where it could end up resetting the `needClientAuth` flag on the `SSLEngine` because of the way the `setNeedClientAuth()` and `setWantClientAuth()` methods were being called on the `SSLEngine`. This too has been fixed in this PR.
>>
>> A new jtreg test has been introduced to reproduce the issue in the `HttpsParameters` class and verify this fix.
>
> Jaikiran Pai has updated the pull request incrementally with two additional commits since the last revision:
>
> - John's review - set need/wantClientAuth to false and expect both need/wantClientAuth to be false
> - assert that client auth was indeed initiated by server during TLS handshake
LGTM.
test/jdk/com/sun/net/httpserver/HttpsParametersClientAuthTest.java line 498:
> 496: @Override
> 497: public X509Certificate[] getCertificateChain(String alias) {
> 498: clientAuthInitiated = true; // keep track that client certs was requested
nit: this is not necessary - `getCertificateChain` is only called if `choose*Alias` returns a non-null value, and both the `chooseClientAlias` methods set `clientAuthInitiated = true` already.
-------------
Marked as reviewed by djelinski (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/17940#pullrequestreview-1903425127
PR Review Comment: https://git.openjdk.org/jdk/pull/17940#discussion_r1504184810
More information about the net-dev
mailing list