public abstract class org.apache.shiro.session.mgt.AbstractValidatingSessionManager extends org.apache.shiro.session.mgt.AbstractNativeSessionManager implements org.apache.shiro.session.mgt.ValidatingSessionManager, org.apache.shiro.util.Destroyable
{
private static final org.slf4j.Logger log;
public static final long DEFAULT_SESSION_VALIDATION_INTERVAL;
protected boolean sessionValidationSchedulerEnabled;
protected org.apache.shiro.session.mgt.SessionValidationScheduler sessionValidationScheduler;
protected long sessionValidationInterval;
public void <init>()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
specialinvoke v.<org.apache.shiro.session.mgt.AbstractNativeSessionManager: void <init>()>();
v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: boolean sessionValidationSchedulerEnabled> = 1;
v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: long sessionValidationInterval> = 3600000L;
return;
}
public boolean isSessionValidationSchedulerEnabled()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
boolean v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: boolean sessionValidationSchedulerEnabled>;
return v;
}
public void setSessionValidationSchedulerEnabled(boolean)
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
boolean v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: boolean;
v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: boolean sessionValidationSchedulerEnabled> = v;
return;
}
public void setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.mgt.SessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.mgt.SessionValidationScheduler;
v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler sessionValidationScheduler> = v;
return;
}
public org.apache.shiro.session.mgt.SessionValidationScheduler getSessionValidationScheduler()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.mgt.SessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler sessionValidationScheduler>;
return v;
}
private void enableSessionValidationIfNecessary()
{
org.apache.shiro.session.mgt.SessionValidationScheduler v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
boolean v, v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler getSessionValidationScheduler()>();
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: boolean isSessionValidationSchedulerEnabled()>();
if v == 0 goto label;
if v == null goto label;
v = interfaceinvoke v.<org.apache.shiro.session.mgt.SessionValidationScheduler: boolean isEnabled()>();
if v != 0 goto label;
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void enableSessionValidation()>();
label:
return;
}
public void setSessionValidationInterval(long)
{
long v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: long;
v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: long sessionValidationInterval> = v;
return;
}
public long getSessionValidationInterval()
{
long v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: long sessionValidationInterval>;
return v;
}
protected final org.apache.shiro.session.Session doGetSession(org.apache.shiro.session.mgt.SessionKey) throws org.apache.shiro.session.InvalidSessionException
{
org.slf4j.Logger v;
org.apache.shiro.session.mgt.SessionKey v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.mgt.SessionKey;
specialinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void enableSessionValidationIfNecessary()>();
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Attempting to retrieve session with key {}", v);
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.Session retrieveSession(org.apache.shiro.session.mgt.SessionKey)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void validate(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)>(v, v);
label:
return v;
}
protected abstract org.apache.shiro.session.Session retrieveSession(org.apache.shiro.session.mgt.SessionKey) throws org.apache.shiro.session.UnknownSessionException;
protected org.apache.shiro.session.Session createSession(org.apache.shiro.session.mgt.SessionContext) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.session.mgt.SessionContext v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.mgt.SessionContext;
specialinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void enableSessionValidationIfNecessary()>();
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.Session doCreateSession(org.apache.shiro.session.mgt.SessionContext)>(v);
return v;
}
protected abstract org.apache.shiro.session.Session doCreateSession(org.apache.shiro.session.mgt.SessionContext) throws org.apache.shiro.authz.AuthorizationException;
protected void validate(org.apache.shiro.session.Session, org.apache.shiro.session.mgt.SessionKey) throws org.apache.shiro.session.InvalidSessionException
{
org.apache.shiro.session.InvalidSessionException v;
org.apache.shiro.session.ExpiredSessionException v;
org.apache.shiro.session.mgt.SessionKey v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
v := @parameter: org.apache.shiro.session.mgt.SessionKey;
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void doValidate(org.apache.shiro.session.Session)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onExpiration(org.apache.shiro.session.Session,org.apache.shiro.session.ExpiredSessionException,org.apache.shiro.session.mgt.SessionKey)>(v, v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onInvalidation(org.apache.shiro.session.Session,org.apache.shiro.session.InvalidSessionException,org.apache.shiro.session.mgt.SessionKey)>(v, v, v);
throw v;
label:
return;
catch org.apache.shiro.session.ExpiredSessionException from label to label with label;
catch org.apache.shiro.session.InvalidSessionException from label to label with label;
}
protected void onExpiration(org.apache.shiro.session.Session, org.apache.shiro.session.ExpiredSessionException, org.apache.shiro.session.mgt.SessionKey)
{
java.lang.Throwable v;
org.slf4j.Logger v;
org.apache.shiro.session.ExpiredSessionException v;
org.apache.shiro.session.mgt.SessionKey v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
java.io.Serializable v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
v := @parameter: org.apache.shiro.session.ExpiredSessionException;
v := @parameter: org.apache.shiro.session.mgt.SessionKey;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Session with id [{}] has expired.", v);
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onExpiration(org.apache.shiro.session.Session)>(v);
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void notifyExpiration(org.apache.shiro.session.Session)>(v);
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void afterExpired(org.apache.shiro.session.Session)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void afterExpired(org.apache.shiro.session.Session)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void onExpiration(org.apache.shiro.session.Session)
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onChange(org.apache.shiro.session.Session)>(v);
return;
}
protected void afterExpired(org.apache.shiro.session.Session)
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
return;
}
protected void onInvalidation(org.apache.shiro.session.Session, org.apache.shiro.session.InvalidSessionException, org.apache.shiro.session.mgt.SessionKey)
{
java.lang.Throwable v;
org.apache.shiro.session.InvalidSessionException v;
org.slf4j.Logger v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
java.io.Serializable v;
org.apache.shiro.session.mgt.SessionKey v;
boolean v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
v := @parameter: org.apache.shiro.session.InvalidSessionException;
v := @parameter: org.apache.shiro.session.mgt.SessionKey;
v = v instanceof org.apache.shiro.session.ExpiredSessionException;
if v == 0 goto label;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onExpiration(org.apache.shiro.session.Session,org.apache.shiro.session.ExpiredSessionException,org.apache.shiro.session.mgt.SessionKey)>(v, v, v);
return;
label:
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Session with id [{}] is invalid.", v);
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void onStop(org.apache.shiro.session.Session)>(v);
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void notifyStop(org.apache.shiro.session.Session)>(v);
label:
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void afterStopped(org.apache.shiro.session.Session)>(v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void afterStopped(org.apache.shiro.session.Session)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void doValidate(org.apache.shiro.session.Session) throws org.apache.shiro.session.InvalidSessionException
{
java.lang.IllegalStateException v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
java.lang.Class v, v, v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
v = v instanceof org.apache.shiro.session.mgt.ValidatingSession;
if v == 0 goto label;
interfaceinvoke v.<org.apache.shiro.session.mgt.ValidatingSession: void validate()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = class "Lorg/apache/shiro/session/mgt/ValidatingSession;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = class "Lorg/apache/shiro/session/mgt/AbstractValidatingSessionManager;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The \u implementation only supports validating Session implementations of the \u interface.  Please either implement this interface in your session implementation or override the \u.doValidate(Session) method to perform validation.");
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
protected long getTimeout(org.apache.shiro.session.Session)
{
long v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
org.apache.shiro.session.Session v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v := @parameter: org.apache.shiro.session.Session;
v = interfaceinvoke v.<org.apache.shiro.session.Session: long getTimeout()>();
return v;
}
protected org.apache.shiro.session.mgt.SessionValidationScheduler createSessionValidationScheduler()
{
org.slf4j.Logger v, v, v, v;
long v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
java.lang.Class v;
java.lang.String v, v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
boolean v, v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("No sessionValidationScheduler set.  Attempting to create default instance.");
label:
v = new org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
specialinvoke v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: void <init>(org.apache.shiro.session.mgt.ValidatingSessionManager)>(v);
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: long getSessionValidationInterval()>();
virtualinvoke v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: void setInterval(long)>(v);
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Created default SessionValidationScheduler instance of type [\u].");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
return v;
}
protected synchronized void enableSessionValidation()
{
org.slf4j.Logger v, v;
org.apache.shiro.session.mgt.SessionValidationScheduler v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
boolean v, v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler getSessionValidationScheduler()>();
if v != null goto label;
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler createSessionValidationScheduler()>();
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)>(v);
label:
v = interfaceinvoke v.<org.apache.shiro.session.mgt.SessionValidationScheduler: boolean isEnabled()>();
if v != 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Enabling session validation scheduler...");
label:
interfaceinvoke v.<org.apache.shiro.session.mgt.SessionValidationScheduler: void enableSessionValidation()>();
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void afterSessionValidationEnabled()>();
label:
return;
}
protected void afterSessionValidationEnabled()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
return;
}
protected synchronized void disableSessionValidation()
{
org.slf4j.Logger v, v, v, v;
org.apache.shiro.session.mgt.SessionValidationScheduler v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
java.lang.Exception v;
boolean v, v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void beforeSessionValidationDisabled()>();
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.apache.shiro.session.mgt.SessionValidationScheduler getSessionValidationScheduler()>();
if v == null goto label;
label:
interfaceinvoke v.<org.apache.shiro.session.mgt.SessionValidationScheduler: void disableSessionValidation()>();
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Disabled session validation scheduler.");
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Unable to disable SessionValidationScheduler.  Ignoring (shutting down)...", v);
label:
staticinvoke <org.apache.shiro.util.LifecycleUtils: void destroy(java.lang.Object)>(v);
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void setSessionValidationScheduler(org.apache.shiro.session.mgt.SessionValidationScheduler)>(null);
label:
return;
catch java.lang.Exception from label to label with label;
}
protected void beforeSessionValidationDisabled()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
return;
}
public void destroy()
{
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void disableSessionValidation()>();
return;
}
public void validateSessions()
{
org.apache.shiro.session.InvalidSessionException v;
org.apache.shiro.session.mgt.AbstractValidatingSessionManager v;
int v;
java.lang.String v, v, v;
boolean v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.util.Iterator v;
java.util.Collection v;
java.io.Serializable v, v;
org.apache.shiro.session.mgt.DefaultSessionKey v;
java.lang.Object v;
v := @this: org.apache.shiro.session.mgt.AbstractValidatingSessionManager;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Validating all active sessions...");
label:
v = 0;
v = virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: java.util.Collection getActiveSessions()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = new org.apache.shiro.session.mgt.DefaultSessionKey;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
specialinvoke v.<org.apache.shiro.session.mgt.DefaultSessionKey: void <init>(java.io.Serializable)>(v);
virtualinvoke v.<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: void validate(org.apache.shiro.session.Session,org.apache.shiro.session.mgt.SessionKey)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v instanceof org.apache.shiro.session.ExpiredSessionException;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
if v == 0 goto label;
v = " (expired)";
goto label;
label:
v = " (stopped)";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.Serializable,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalidated session with id [\u]\u0001");
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
if v <= 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>("Finished session validation.", v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u  [\u] sessions were stopped.");
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("Finished session validation.") <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u  No sessions were stopped.");
label:
v = <org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
return;
catch org.apache.shiro.session.InvalidSessionException from label to label with label;
}
protected abstract java.util.Collection getActiveSessions();
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/session/mgt/AbstractValidatingSessionManager;");
<org.apache.shiro.session.mgt.AbstractValidatingSessionManager: org.slf4j.Logger log> = v;
return;
}
}