public class org.apache.shiro.web.mgt.DefaultWebSecurityManager extends org.apache.shiro.mgt.DefaultSecurityManager implements org.apache.shiro.web.mgt.WebSecurityManager
{
private static final org.slf4j.Logger log;
public static final java.lang.String HTTP_SESSION_MODE;
public static final java.lang.String NATIVE_SESSION_MODE;
private java.lang.String sessionMode;
public void <init>()
{
org.apache.shiro.mgt.SubjectDAO v;
org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator v;
org.apache.shiro.web.session.mgt.ServletContainerSessionManager v;
org.apache.shiro.web.mgt.CookieRememberMeManager v;
org.apache.shiro.session.mgt.SessionManager v;
org.apache.shiro.web.mgt.DefaultWebSubjectFactory v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: void <init>()>();
v = new org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator;
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator: void <init>()>();
v = v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.mgt.SubjectDAO subjectDAO>;
virtualinvoke v.<org.apache.shiro.mgt.DefaultSubjectDAO: void setSessionStorageEvaluator(org.apache.shiro.mgt.SessionStorageEvaluator)>(v);
v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode> = "http";
v = new org.apache.shiro.web.mgt.DefaultWebSubjectFactory;
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSubjectFactory: void <init>()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setSubjectFactory(org.apache.shiro.mgt.SubjectFactory)>(v);
v = new org.apache.shiro.web.mgt.CookieRememberMeManager;
specialinvoke v.<org.apache.shiro.web.mgt.CookieRememberMeManager: void <init>()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setRememberMeManager(org.apache.shiro.mgt.RememberMeManager)>(v);
v = new org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
specialinvoke v.<org.apache.shiro.web.session.mgt.ServletContainerSessionManager: void <init>()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.session.mgt.SessionManager getSessionManager()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator: void setSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
return;
}
public void <init>(org.apache.shiro.realm.Realm)
{
org.apache.shiro.realm.Realm v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.realm.Realm;
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void <init>()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setRealm(org.apache.shiro.realm.Realm)>(v);
return;
}
public void <init>(java.util.Collection)
{
java.util.Collection v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: java.util.Collection;
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void <init>()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setRealms(java.util.Collection)>(v);
return;
}
protected org.apache.shiro.subject.SubjectContext createSubjectContext()
{
org.apache.shiro.web.subject.support.DefaultWebSubjectContext v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v = new org.apache.shiro.web.subject.support.DefaultWebSubjectContext;
specialinvoke v.<org.apache.shiro.web.subject.support.DefaultWebSubjectContext: void <init>()>();
return v;
}
public void setSubjectDAO(org.apache.shiro.mgt.SubjectDAO)
{
org.apache.shiro.mgt.SubjectDAO v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.mgt.SubjectDAO;
specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: void setSubjectDAO(org.apache.shiro.mgt.SubjectDAO)>(v);
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void applySessionManagerToSessionStorageEvaluatorIfPossible()>();
return;
}
protected void afterSessionManagerSet()
{
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: void afterSessionManagerSet()>();
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void applySessionManagerToSessionStorageEvaluatorIfPossible()>();
return;
}
private void applySessionManagerToSessionStorageEvaluatorIfPossible()
{
org.apache.shiro.mgt.SubjectDAO v;
org.apache.shiro.mgt.SessionStorageEvaluator v;
org.apache.shiro.session.mgt.SessionManager v;
boolean v, v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.mgt.SubjectDAO getSubjectDAO()>();
v = v instanceof org.apache.shiro.mgt.DefaultSubjectDAO;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.mgt.DefaultSubjectDAO: org.apache.shiro.mgt.SessionStorageEvaluator getSessionStorageEvaluator()>();
v = v instanceof org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.session.mgt.SessionManager getSessionManager()>();
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator: void setSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
label:
return;
}
protected org.apache.shiro.subject.SubjectContext copy(org.apache.shiro.subject.SubjectContext)
{
org.apache.shiro.subject.SubjectContext v, v;
org.apache.shiro.web.subject.support.DefaultWebSubjectContext v;
boolean v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = v instanceof org.apache.shiro.web.subject.WebSubjectContext;
if v == 0 goto label;
v = new org.apache.shiro.web.subject.support.DefaultWebSubjectContext;
specialinvoke v.<org.apache.shiro.web.subject.support.DefaultWebSubjectContext: void <init>(org.apache.shiro.web.subject.WebSubjectContext)>(v);
return v;
label:
v = specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: org.apache.shiro.subject.SubjectContext copy(org.apache.shiro.subject.SubjectContext)>(v);
return v;
}
public java.lang.String getSessionMode()
{
java.lang.String v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v = v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode>;
return v;
}
public void setSessionMode(java.lang.String)
{
java.lang.String v, v, v, v, v, v, v, v;
org.apache.shiro.session.mgt.SessionManager v, v;
boolean v, v, v, v;
org.slf4j.Logger v;
java.lang.IllegalArgumentException v, v;
java.lang.Class v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: java.lang.String;
v = <org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("The \'sessionMode\' property has been deprecated.  Please configure an appropriate WebSessionManager instance instead of using this property.  This property/method will be removed in a later version.");
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("sessionMode argument cannot be null.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = "http";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "native";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
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,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[])>("Invalid sessionMode [\u].  Allowed values are public static final String constants in the \u class: \'http\' or \'native\', with \'http\' being the default.");
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode>;
if v == null goto label;
v = v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode> = v;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.session.mgt.SessionManager getSessionManager()>();
staticinvoke <org.apache.shiro.util.LifecycleUtils: void destroy(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.session.mgt.SessionManager createSessionManager(java.lang.String)>(v);
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setInternalSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
label:
return;
}
public void setSessionManager(org.apache.shiro.session.mgt.SessionManager)
{
org.slf4j.Logger v, v;
java.lang.Class v, v, v;
java.lang.String v, v, v, v;
org.apache.shiro.session.mgt.SessionManager v;
boolean v, v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.session.mgt.SessionManager;
v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: java.lang.String sessionMode> = null;
if v == null goto label;
v = v instanceof org.apache.shiro.web.session.mgt.WebSessionManager;
if v != 0 goto label;
v = <org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v == 0 goto 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/web/session/mgt/WebSessionManager;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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,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 expects SessionManager instances that implement the \u interface.  The configured instance is of type [\u] which does not implement this interface..  This may cause unexpected behavior.");
v = <org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
specialinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void setInternalSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
return;
}
private void setInternalSessionManager(org.apache.shiro.session.mgt.SessionManager)
{
org.apache.shiro.session.mgt.SessionManager v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.session.mgt.SessionManager;
specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: void setSessionManager(org.apache.shiro.session.mgt.SessionManager)>(v);
return;
}
public boolean isHttpSessionMode()
{
org.apache.shiro.session.mgt.SessionManager v;
boolean v, v, v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v = virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.apache.shiro.session.mgt.SessionManager getSessionManager()>();
v = v instanceof org.apache.shiro.web.session.mgt.WebSessionManager;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.session.mgt.WebSessionManager: boolean isServletContainerSessions()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected org.apache.shiro.session.mgt.SessionManager createSessionManager(java.lang.String)
{
org.apache.shiro.web.session.mgt.DefaultWebSessionManager v;
org.slf4j.Logger v, v;
org.apache.shiro.web.session.mgt.ServletContainerSessionManager v;
java.lang.String v;
boolean v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("native");
if v != 0 goto label;
label:
v = <org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("{} mode - enabling ServletContainerSessionManager (HTTP-only Sessions)", "http");
v = new org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
specialinvoke v.<org.apache.shiro.web.session.mgt.ServletContainerSessionManager: void <init>()>();
return v;
label:
v = <org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("{} mode - enabling DefaultWebSessionManager (non-HTTP and HTTP Sessions)", "native");
v = new org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
specialinvoke v.<org.apache.shiro.web.session.mgt.DefaultWebSessionManager: void <init>()>();
return v;
}
protected org.apache.shiro.session.mgt.SessionContext createSessionContext(org.apache.shiro.subject.SubjectContext)
{
org.apache.shiro.subject.SubjectContext v;
org.apache.shiro.session.mgt.SessionContext v;
javax.servlet.ServletRequest v;
javax.servlet.ServletResponse v;
org.apache.shiro.web.session.mgt.DefaultWebSessionContext v;
boolean v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: org.apache.shiro.session.mgt.SessionContext createSessionContext(org.apache.shiro.subject.SubjectContext)>(v);
v = v instanceof org.apache.shiro.web.subject.WebSubjectContext;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.subject.WebSubjectContext: javax.servlet.ServletRequest resolveServletRequest()>();
v = interfaceinvoke v.<org.apache.shiro.web.subject.WebSubjectContext: javax.servlet.ServletResponse resolveServletResponse()>();
v = new org.apache.shiro.web.session.mgt.DefaultWebSessionContext;
specialinvoke v.<org.apache.shiro.web.session.mgt.DefaultWebSessionContext: void <init>(java.util.Map)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.shiro.web.session.mgt.DefaultWebSessionContext: void setServletRequest(javax.servlet.ServletRequest)>(v);
label:
if v == null goto label;
virtualinvoke v.<org.apache.shiro.web.session.mgt.DefaultWebSessionContext: void setServletResponse(javax.servlet.ServletResponse)>(v);
label:
v = v;
label:
return v;
}
protected org.apache.shiro.session.mgt.SessionKey getSessionKey(org.apache.shiro.subject.SubjectContext)
{
javax.servlet.ServletRequest v;
java.io.Serializable v;
org.apache.shiro.web.session.mgt.WebSessionKey v;
org.apache.shiro.subject.SubjectContext v;
javax.servlet.ServletResponse v;
org.apache.shiro.session.mgt.SessionKey v;
boolean v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.subject.SubjectContext;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: boolean isWeb(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.subject.SubjectContext: java.io.Serializable getSessionId()>();
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.ServletRequest getRequest(java.lang.Object)>(v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.ServletResponse getResponse(java.lang.Object)>(v);
v = new org.apache.shiro.web.session.mgt.WebSessionKey;
specialinvoke v.<org.apache.shiro.web.session.mgt.WebSessionKey: void <init>(java.io.Serializable,javax.servlet.ServletRequest,javax.servlet.ServletResponse)>(v, v, v);
return v;
label:
v = specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: org.apache.shiro.session.mgt.SessionKey getSessionKey(org.apache.shiro.subject.SubjectContext)>(v);
return v;
}
protected void beforeLogout(org.apache.shiro.subject.Subject)
{
org.apache.shiro.subject.Subject v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.subject.Subject;
specialinvoke v.<org.apache.shiro.mgt.DefaultSecurityManager: void beforeLogout(org.apache.shiro.subject.Subject)>(v);
virtualinvoke v.<org.apache.shiro.web.mgt.DefaultWebSecurityManager: void removeRequestIdentity(org.apache.shiro.subject.Subject)>(v);
return;
}
protected void removeRequestIdentity(org.apache.shiro.subject.Subject)
{
javax.servlet.ServletRequest v;
org.apache.shiro.subject.Subject v;
java.lang.Boolean v;
java.lang.String v;
boolean v;
org.apache.shiro.web.mgt.DefaultWebSecurityManager v;
v := @this: org.apache.shiro.web.mgt.DefaultWebSecurityManager;
v := @parameter: org.apache.shiro.subject.Subject;
v = v instanceof org.apache.shiro.web.subject.WebSubject;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.subject.WebSubject: javax.servlet.ServletRequest getServletRequest()>();
if v == null goto label;
v = <org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String IDENTITY_REMOVED_KEY>;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
interfaceinvoke v.<javax.servlet.ServletRequest: void setAttribute(java.lang.String,java.lang.Object)>(v, v);
label:
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/web/mgt/DefaultWebSecurityManager;");
<org.apache.shiro.web.mgt.DefaultWebSecurityManager: org.slf4j.Logger log> = v;
return;
}
}