提交 f7597b4e 编写于 作者: A abakhtin

8234408: Improve TLS session handling

Reviewed-by: andrew
上级 7e7b76aa
...@@ -1337,7 +1337,7 @@ final class ClientHandshaker extends Handshaker { ...@@ -1337,7 +1337,7 @@ final class ClientHandshaker extends Handshaker {
@Override @Override
HandshakeMessage getKickstartMessage() throws SSLException { HandshakeMessage getKickstartMessage() throws SSLException {
// session ID of the ClientHello message // 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 // a list of cipher suites sent by the client
CipherSuiteList cipherSuites = getActiveCipherSuites(); CipherSuiteList cipherSuites = getActiveCipherSuites();
......
...@@ -375,7 +375,7 @@ final public class SSLEngineImpl extends SSLEngine { ...@@ -375,7 +375,7 @@ final public class SSLEngineImpl extends SSLEngine {
} }
sslContext = ctx; sslContext = ctx;
sess = SSLSessionImpl.nullSession; sess = new SSLSessionImpl();
handshakeSession = null; handshakeSession = null;
/* /*
......
...@@ -73,11 +73,6 @@ import static sun.security.ssl.CipherSuite.KeyExchange.*; ...@@ -73,11 +73,6 @@ import static sun.security.ssl.CipherSuite.KeyExchange.*;
*/ */
final class SSLSessionImpl extends ExtendedSSLSession { final class SSLSessionImpl extends ExtendedSSLSession {
/*
* we only really need a single null session
*/
static final SSLSessionImpl nullSession = new SSLSessionImpl();
// compression methods // compression methods
private static final byte compression_null = 0; private static final byte compression_null = 0;
...@@ -148,7 +143,7 @@ final class SSLSessionImpl extends ExtendedSSLSession { ...@@ -148,7 +143,7 @@ final class SSLSessionImpl extends ExtendedSSLSession {
* be used either by a client or by a server, as a connection is * be used either by a client or by a server, as a connection is
* first opened and before handshaking begins. * first opened and before handshaking begins.
*/ */
private SSLSessionImpl() { SSLSessionImpl() {
this(ProtocolVersion.NONE, CipherSuite.C_NULL, null, this(ProtocolVersion.NONE, CipherSuite.C_NULL, null,
new SessionId(false, null), null, -1, false, null); new SessionId(false, null), null, -1, false, null);
} }
...@@ -657,14 +652,6 @@ final class SSLSessionImpl extends ExtendedSSLSession { ...@@ -657,14 +652,6 @@ final class SSLSessionImpl extends ExtendedSSLSession {
*/ */
@Override @Override
synchronized public void invalidate() { synchronized public void invalidate() {
//
// 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;
}
invalidated = true; invalidated = true;
if (debug != null && Debug.isOn("session")) { if (debug != null && Debug.isOn("session")) {
System.out.println("%% Invalidated: " + this); System.out.println("%% Invalidated: " + this);
......
...@@ -610,7 +610,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { ...@@ -610,7 +610,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl {
*/ */
private void init(SSLContextImpl context, boolean isServer) { private void init(SSLContextImpl context, boolean isServer) {
sslContext = context; sslContext = context;
sess = SSLSessionImpl.nullSession; sess = new SSLSessionImpl();
handshakeSession = null; handshakeSession = null;
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册