Package io.netty.handler.ssl
Class ReferenceCountedOpenSslEngine.DefaultOpenSslSession
java.lang.Object
io.netty.handler.ssl.ReferenceCountedOpenSslEngine.DefaultOpenSslSession
- All Implemented Interfaces:
OpenSslSession,SSLSession
- Enclosing class:
ReferenceCountedOpenSslEngine
private final class ReferenceCountedOpenSslEngine.DefaultOpenSslSession
extends Object
implements OpenSslSession
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate Stringprivate longprivate OpenSslSessionIdprivate longprivate Certificate[]private Certificate[]private Stringprivate final OpenSslSessionContextprivate booleanprivate X509Certificate[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanintlongbyte[]getId()longintintString[]voidhandshakeFinished(byte[] id, String cipher, String protocol, byte[] peerCertificate, byte[][] peerCertificateChain, long creationTime, long timeout) Finish the handshake and so init everything in theOpenSslSessionthat should be accessible by the user.inthashCode()private voidinitCerts(byte[][] chain, int startPos) voidbooleanisValid()Return the underlyingMapthat is used by the following methods:SSLSession.putValue(String, Object)SSLSession.removeValue(String)SSLSession.getValue(String)SSLSession.getValueNames()TheMapmust be thread-safe!private SSLSessionBindingEventprivate voidnotifyUnbound(Object value, String name) voidCalled on a handshake session before being exposed to aTrustManager.voidvoidremoveValue(String name) Return theOpenSslSessionIdthat can be used to identify this session.voidsetLastAccessedTime(long time) Set the last access time which will be returned bySSLSession.getLastAccessedTime().voidsetLocalCertificate(Certificate[] localCertificate) Set the local certificate chain that is used.voidsetSessionDetails(long creationTime, long lastAccessedTime, OpenSslSessionId sessionId, Map<String, Object> keyValueStorage) Set the details for the session which might come from a cache.toString()voidtryExpandApplicationBufferSize(int packetLengthDataOnly) Expand (or increase) the value returned bySSLSession.getApplicationBufferSize()if necessary.
-
Field Details
-
sessionContext
-
x509PeerCerts
-
peerCerts
-
valid
private boolean valid -
protocol
-
cipher
-
id
-
creationTime
private long creationTime -
lastAccessed
private long lastAccessed -
applicationBufferSize
private volatile int applicationBufferSize -
localCertificateChain
-
keyValueStorage
-
-
Constructor Details
-
DefaultOpenSslSession
DefaultOpenSslSession(OpenSslSessionContext sessionContext)
-
-
Method Details
-
newSSLSessionBindingEvent
-
prepareHandshake
public void prepareHandshake()Description copied from interface:OpenSslSessionCalled on a handshake session before being exposed to aTrustManager. Session data must be cleared by this call.- Specified by:
prepareHandshakein interfaceOpenSslSession
-
setSessionDetails
public void setSessionDetails(long creationTime, long lastAccessedTime, OpenSslSessionId sessionId, Map<String, Object> keyValueStorage) Description copied from interface:OpenSslSessionSet the details for the session which might come from a cache.- Specified by:
setSessionDetailsin interfaceOpenSslSession- Parameters:
creationTime- the time at which the session was created.lastAccessedTime- the time at which the session was last accessed via the session infrastructure (cache).sessionId- theOpenSslSessionIdkeyValueStorage- the key value store. SeeOpenSslSession.keyValueStorage().
-
keyValueStorage
Description copied from interface:OpenSslSessionReturn the underlyingMapthat is used by the following methods:SSLSession.putValue(String, Object)SSLSession.removeValue(String)SSLSession.getValue(String)-
SSLSession.getValueNames()
Mapmust be thread-safe!- Specified by:
keyValueStoragein interfaceOpenSslSession- Returns:
- storage
-
sessionId
Description copied from interface:OpenSslSessionReturn theOpenSslSessionIdthat can be used to identify this session.- Specified by:
sessionIdin interfaceOpenSslSession
-
setLocalCertificate
Description copied from interface:OpenSslSessionSet the local certificate chain that is used. It is not expected that this array will be changed at all and so its ok to not copy the array.- Specified by:
setLocalCertificatein interfaceOpenSslSession
-
getId
public byte[] getId()- Specified by:
getIdin interfaceSSLSession
-
getSessionContext
- Specified by:
getSessionContextin interfaceOpenSslSession- Specified by:
getSessionContextin interfaceSSLSession
-
getCreationTime
public long getCreationTime()- Specified by:
getCreationTimein interfaceSSLSession
-
setLastAccessedTime
public void setLastAccessedTime(long time) Description copied from interface:OpenSslSessionSet the last access time which will be returned bySSLSession.getLastAccessedTime().- Specified by:
setLastAccessedTimein interfaceOpenSslSession- Parameters:
time- the time
-
getLastAccessedTime
public long getLastAccessedTime()- Specified by:
getLastAccessedTimein interfaceSSLSession
-
invalidate
public void invalidate()- Specified by:
invalidatein interfaceSSLSession
-
isValid
public boolean isValid()- Specified by:
isValidin interfaceSSLSession
-
putValue
- Specified by:
putValuein interfaceSSLSession
-
getValue
- Specified by:
getValuein interfaceSSLSession
-
removeValue
- Specified by:
removeValuein interfaceSSLSession
-
getValueNames
- Specified by:
getValueNamesin interfaceSSLSession
-
notifyUnbound
-
handshakeFinished
public void handshakeFinished(byte[] id, String cipher, String protocol, byte[] peerCertificate, byte[][] peerCertificateChain, long creationTime, long timeout) throws SSLException Finish the handshake and so init everything in theOpenSslSessionthat should be accessible by the user.- Specified by:
handshakeFinishedin interfaceOpenSslSession- Throws:
SSLException
-
initCerts
private void initCerts(byte[][] chain, int startPos) -
getPeerCertificates
- Specified by:
getPeerCertificatesin interfaceSSLSession- Throws:
SSLPeerUnverifiedException
-
getLocalCertificates
- Specified by:
getLocalCertificatesin interfaceSSLSession
-
getPeerCertificateChain
- Specified by:
getPeerCertificateChainin interfaceSSLSession- Throws:
SSLPeerUnverifiedException
-
getPeerPrincipal
- Specified by:
getPeerPrincipalin interfaceSSLSession- Throws:
SSLPeerUnverifiedException
-
getLocalPrincipal
- Specified by:
getLocalPrincipalin interfaceSSLSession
-
getCipherSuite
- Specified by:
getCipherSuitein interfaceSSLSession
-
getProtocol
- Specified by:
getProtocolin interfaceSSLSession
-
getPeerHost
- Specified by:
getPeerHostin interfaceSSLSession
-
getPeerPort
public int getPeerPort()- Specified by:
getPeerPortin interfaceSSLSession
-
getPacketBufferSize
public int getPacketBufferSize()- Specified by:
getPacketBufferSizein interfaceSSLSession
-
getApplicationBufferSize
public int getApplicationBufferSize()- Specified by:
getApplicationBufferSizein interfaceSSLSession
-
tryExpandApplicationBufferSize
public void tryExpandApplicationBufferSize(int packetLengthDataOnly) Description copied from interface:OpenSslSessionExpand (or increase) the value returned bySSLSession.getApplicationBufferSize()if necessary.This is only called in a synchronized block, so no need to use atomic operations.
- Specified by:
tryExpandApplicationBufferSizein interfaceOpenSslSession- Parameters:
packetLengthDataOnly- The packet size which exceeds the currentSSLSession.getApplicationBufferSize().
-
toString
-
hashCode
public int hashCode() -
equals
-