public class org.glassfish.grizzly.http.server.DefaultSessionManager extends java.lang.Object implements org.glassfish.grizzly.http.server.SessionManager
{
private final java.util.concurrent.ConcurrentMap sessions;
private final java.util.Random rnd;
private java.lang.String sessionCookieName;
private final java.util.concurrent.ScheduledThreadPoolExecutor sessionExpirer;
public static org.glassfish.grizzly.http.server.SessionManager instance()
{
org.glassfish.grizzly.http.server.DefaultSessionManager v;
v = <org.glassfish.grizzly.http.server.DefaultSessionManager$LazyHolder: org.glassfish.grizzly.http.server.DefaultSessionManager INSTANCE>;
return v;
}
private void <init>()
{
org.glassfish.grizzly.http.server.DefaultSessionManager$1 v;
org.glassfish.grizzly.http.server.DefaultSessionManager$2 v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Random v;
java.util.concurrent.ScheduledThreadPoolExecutor v, v;
java.util.concurrent.TimeUnit v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ConcurrentMap sessions> = v;
v = new java.util.Random;
specialinvoke v.<java.util.Random: void <init>()>();
v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.Random rnd> = v;
v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.lang.String sessionCookieName> = "JSESSIONID";
v = new java.util.concurrent.ScheduledThreadPoolExecutor;
v = new org.glassfish.grizzly.http.server.DefaultSessionManager$1;
specialinvoke v.<org.glassfish.grizzly.http.server.DefaultSessionManager$1: void <init>(org.glassfish.grizzly.http.server.DefaultSessionManager)>(v);
specialinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: void <init>(int,java.util.concurrent.ThreadFactory)>(1, v);
v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ScheduledThreadPoolExecutor sessionExpirer> = v;
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ScheduledThreadPoolExecutor sessionExpirer>;
v = new org.glassfish.grizzly.http.server.DefaultSessionManager$2;
specialinvoke v.<org.glassfish.grizzly.http.server.DefaultSessionManager$2: void <init>(org.glassfish.grizzly.http.server.DefaultSessionManager)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
virtualinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, 5L, 5L, v);
return;
}
public org.glassfish.grizzly.http.server.Session getSession(org.glassfish.grizzly.http.server.Request, java.lang.String)
{
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
java.lang.Object v;
java.lang.String v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v := @parameter: java.lang.String;
if v == null goto label;
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ConcurrentMap sessions>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Session: boolean isValid()>();
if v == 0 goto label;
return v;
label:
return null;
}
public org.glassfish.grizzly.http.server.Session createSession(org.glassfish.grizzly.http.server.Request)
{
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
org.glassfish.grizzly.http.server.Session v;
java.lang.Object v;
long v;
java.lang.String v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v = new org.glassfish.grizzly.http.server.Session;
specialinvoke v.<org.glassfish.grizzly.http.server.Session: void <init>()>();
label:
v = specialinvoke v.<org.glassfish.grizzly.http.server.DefaultSessionManager: long generateRandomLong()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
virtualinvoke v.<org.glassfish.grizzly.http.server.Session: void setIdInternal(java.lang.String)>(v);
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ConcurrentMap sessions>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
return v;
}
public java.lang.String changeSessionId(org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.server.Session)
{
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
org.glassfish.grizzly.http.server.Session v;
long v;
java.util.concurrent.ConcurrentMap v, v;
java.lang.String v, v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v := @parameter: org.glassfish.grizzly.http.server.Session;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Session: java.lang.String getIdInternal()>();
v = specialinvoke v.<org.glassfish.grizzly.http.server.DefaultSessionManager: long generateRandomLong()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
virtualinvoke v.<org.glassfish.grizzly.http.server.Session: void setIdInternal(java.lang.String)>(v);
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ConcurrentMap sessions>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.concurrent.ConcurrentMap sessions>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public void configureSessionCookie(org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.Cookie)
{
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.Cookie v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v := @parameter: org.glassfish.grizzly.http.Cookie;
return;
}
public void setSessionCookieName(java.lang.String)
{
java.lang.String v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
boolean v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.lang.String sessionCookieName> = v;
label:
return;
}
public java.lang.String getSessionCookieName()
{
java.lang.String v;
org.glassfish.grizzly.http.server.DefaultSessionManager v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.lang.String sessionCookieName>;
return v;
}
private long generateRandomLong()
{
org.glassfish.grizzly.http.server.DefaultSessionManager v;
java.util.Random v;
long v, v;
v := @this: org.glassfish.grizzly.http.server.DefaultSessionManager;
v = v.<org.glassfish.grizzly.http.server.DefaultSessionManager: java.util.Random rnd>;
v = virtualinvoke v.<java.util.Random: long nextLong()>();
v = v & 9223372036854775807L;
return v;
}
}