mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8234408: Improve TLS session handling
Reviewed-by: ascarpino, jjiang, ahgross, ssahoo, mullan
This commit is contained in:
parent
3dd1fd2964
commit
72c7b49b0a
4 changed files with 4 additions and 18 deletions
|
@ -406,7 +406,7 @@ final class ClientHello {
|
|||
ProtocolVersion maxProtocolVersion = chc.maximumActiveProtocol;
|
||||
|
||||
// session ID of the ClientHello message
|
||||
SessionId sessionId = SSLSessionImpl.nullSession.getSessionId();
|
||||
SessionId sessionId = new SessionId(new byte[0]);
|
||||
|
||||
// a list of cipher suites sent by the client
|
||||
List<CipherSuite> cipherSuites = chc.activeCipherSuites;
|
||||
|
|
|
@ -77,11 +77,6 @@ import javax.net.ssl.SSLSessionContext;
|
|||
*/
|
||||
final class SSLSessionImpl extends ExtendedSSLSession {
|
||||
|
||||
/*
|
||||
* we only really need a single null session
|
||||
*/
|
||||
static final SSLSessionImpl nullSession = new SSLSessionImpl();
|
||||
|
||||
/*
|
||||
* The state of a single session, as described in section 7.1
|
||||
* of the SSLv3 spec.
|
||||
|
@ -153,7 +148,7 @@ final class SSLSessionImpl extends ExtendedSSLSession {
|
|||
* be used either by a client or by a server, as a connection is
|
||||
* first opened and before handshaking begins.
|
||||
*/
|
||||
private SSLSessionImpl() {
|
||||
SSLSessionImpl() {
|
||||
this.protocolVersion = ProtocolVersion.NONE;
|
||||
this.cipherSuite = CipherSuite.C_NULL;
|
||||
this.sessionId = new SessionId(false, null);
|
||||
|
@ -1222,15 +1217,6 @@ final class SSLSessionImpl extends ExtendedSSLSession {
|
|||
public void invalidate() {
|
||||
sessionLock.lock();
|
||||
try {
|
||||
//
|
||||
// Can't invalidate the NULL session -- this would be
|
||||
// attempted when we get a handshaking error on a brand
|
||||
// new connection, with no "real" session yet.
|
||||
//
|
||||
if (this == nullSession) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (context != null) {
|
||||
context.remove(sessionId);
|
||||
context = null;
|
||||
|
|
|
@ -360,7 +360,7 @@ public final class SSLSocketImpl
|
|||
SSLLogger.severe("handshake failed", ioe);
|
||||
}
|
||||
|
||||
return SSLSessionImpl.nullSession;
|
||||
return new SSLSessionImpl();
|
||||
}
|
||||
|
||||
return conContext.conSession;
|
||||
|
|
|
@ -130,7 +130,7 @@ final class TransportContext implements ConnectionContext {
|
|||
this.isUnsureMode = isUnsureMode;
|
||||
|
||||
// initial security parameters
|
||||
this.conSession = SSLSessionImpl.nullSession;
|
||||
this.conSession = new SSLSessionImpl();
|
||||
this.protocolVersion = this.sslConfig.maximumProtocolVersion;
|
||||
this.clientVerifyData = emptyByteArray;
|
||||
this.serverVerifyData = emptyByteArray;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue