本文整理汇总了Java中javax.net.ssl.SSLSession.invalidate方法的典型用法代码示例。如果您正苦于以下问题:Java SSLSession.invalidate方法的具体用法?Java SSLSession.invalidate怎么用?Java SSLSession.invalidate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.net.ssl.SSLSession
的用法示例。
在下文中一共展示了SSLSession.invalidate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: clearSessionCache
import javax.net.ssl.SSLSession; //导入方法依赖的package包/类
/**
* Invalidates all SSL/TLS sessions in {@code sessionContext} associated with {@code remoteAddress}.
*
* @param sessionContext collection of SSL/TLS sessions to be (potentially) invalidated
* @param remoteAddress associated with sessions to invalidate
*/
private void clearSessionCache(final SSLSessionContext sessionContext, final InetSocketAddress remoteAddress) {
final String hostName = remoteAddress.getHostName();
final int port = remoteAddress.getPort();
final Enumeration<byte[]> ids = sessionContext.getIds();
if (ids == null) {
return;
}
while (ids.hasMoreElements()) {
final byte[] id = ids.nextElement();
final SSLSession session = sessionContext.getSession(id);
if (session != null && session.getPeerHost() != null && session.getPeerHost().equalsIgnoreCase(hostName)
&& session.getPeerPort() == port) {
session.invalidate();
if (LOG.isDebugEnabled()) {
LOG.debug("Invalidated session " + session);
}
}
}
}
示例2: privilegedIsMasterSecretValid
import javax.net.ssl.SSLSession; //导入方法依赖的package包/类
/**
* Checks the validity of an SSLSession's master secret. Should be run within a doPrivileged
* block
*/
private boolean privilegedIsMasterSecretValid(final Socket socket) {
if (socket instanceof SSLSocket) {
SSLSession session = getSslSession(socket);
if (session != null) {
String className = session.getClass().getName();
if ("sun.security.ssl.SSLSessionImpl".equals(className)) {
try {
Object masterSecret = getMasterSecret(session, className);
if (masterSecret == null) {
session.invalidate();
if (LOG.isDebugEnabled()) {
LOG.debug("Invalidated session " + session);
}
return false;
}
} catch (Exception e) {
failedToVerifyMasterSecret(e);
}
}
}
}
return true;
}
示例3: isTimedout
import javax.net.ssl.SSLSession; //导入方法依赖的package包/类
boolean isTimedout(SSLSession sess) {
if (timeout == 0) {
return false;
}
if ((sess != null) && ((sess.getCreationTime() + timeout * 1000L)
<= (System.currentTimeMillis()))) {
sess.invalidate();
return true;
}
return false;
}
示例4: doClientSide
import javax.net.ssl.SSLSession; //导入方法依赖的package包/类
SBListener doClientSide() throws Exception {
/*
* Wait for server to get started.
*/
while (!serverReady) {
Thread.sleep(50);
}
SSLSocketFactory sslsf =
(SSLSocketFactory) SSLSocketFactory.getDefault();
try {
SSLSocket sslSocket = (SSLSocket)
sslsf.createSocket("localhost", serverPort);
InputStream sslIS = sslSocket.getInputStream();
OutputStream sslOS = sslSocket.getOutputStream();
sslOS.write(280);
sslOS.flush();
sslIS.read();
sslOS.close();
sslIS.close();
SSLSession sslSession = sslSocket.getSession();
System.out.printf(" sslSession: %s %n %s%n", sslSession, sslSession.getClass());
SBListener sbListener = new SBListener(sslSession);
sslSession.putValue("x", sbListener);
sslSession.invalidate();
sslSocket.close();
sslOS = null;
sslIS = null;
sslSession = null;
sslSocket = null;
Reference.reachabilityFence(sslOS);
Reference.reachabilityFence(sslIS);
Reference.reachabilityFence(sslSession);
Reference.reachabilityFence(sslSocket);
return sbListener;
} catch (Exception ex) {
ex.printStackTrace();
throw ex;
}
}