public class org.apache.shiro.subject.support.DelegatingSubject extends java.lang.Object implements org.apache.shiro.subject.Subject
{
private static final org.slf4j.Logger log;
private static final java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY;
protected org.apache.shiro.subject.PrincipalCollection principals;
protected boolean authenticated;
protected java.lang.String host;
protected org.apache.shiro.session.Session session;
protected boolean sessionCreationEnabled;
protected transient org.apache.shiro.mgt.SecurityManager securityManager;
static final boolean $assertionsDisabled;
public void <init>(org.apache.shiro.mgt.SecurityManager)
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.mgt.SecurityManager;
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void <init>(org.apache.shiro.subject.PrincipalCollection,boolean,java.lang.String,org.apache.shiro.session.Session,org.apache.shiro.mgt.SecurityManager)>(null, 0, null, null, v);
return;
}
public void <init>(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, org.apache.shiro.mgt.SecurityManager)
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
org.apache.shiro.session.Session v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: org.apache.shiro.session.Session;
v := @parameter: org.apache.shiro.mgt.SecurityManager;
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void <init>(org.apache.shiro.subject.PrincipalCollection,boolean,java.lang.String,org.apache.shiro.session.Session,boolean,org.apache.shiro.mgt.SecurityManager)>(v, v, v, v, 1, v);
return;
}
public void <init>(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, boolean, org.apache.shiro.mgt.SecurityManager)
{
java.lang.IllegalArgumentException v;
org.apache.shiro.session.Session v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: org.apache.shiro.session.Session;
v := @parameter: boolean;
v := @parameter: org.apache.shiro.mgt.SecurityManager;
specialinvoke v.<java.lang.Object: void <init>()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("SecurityManager argument cannot be null.");
throw v;
label:
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager> = v;
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection principals> = v;
v.<org.apache.shiro.subject.support.DelegatingSubject: boolean authenticated> = v;
v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host> = v;
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session decorate(org.apache.shiro.session.Session)>(v);
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = v;
label:
v.<org.apache.shiro.subject.support.DelegatingSubject: boolean sessionCreationEnabled> = v;
return;
}
protected org.apache.shiro.session.Session decorate(org.apache.shiro.session.Session)
{
java.lang.IllegalArgumentException v;
org.apache.shiro.session.Session v;
org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.session.Session;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("session cannot be null");
throw v;
label:
v = new org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession;
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession: void <init>(org.apache.shiro.subject.support.DelegatingSubject,org.apache.shiro.session.Session,org.apache.shiro.subject.support.DelegatingSubject)>(v, v, v);
return v;
}
public org.apache.shiro.mgt.SecurityManager getSecurityManager()
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
return v;
}
private static boolean isEmpty(org.apache.shiro.subject.PrincipalCollection)
{
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
if v == null goto label;
v = interfaceinvoke v.<org.apache.shiro.subject.PrincipalCollection: boolean isEmpty()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean hasPrincipals()
{
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = staticinvoke <org.apache.shiro.subject.support.DelegatingSubject: boolean isEmpty(org.apache.shiro.subject.PrincipalCollection)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.String getHost()
{
java.lang.String v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host>;
return v;
}
private java.lang.Object getPrimaryPrincipal(org.apache.shiro.subject.PrincipalCollection)
{
java.lang.Object v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = staticinvoke <org.apache.shiro.subject.support.DelegatingSubject: boolean isEmpty(org.apache.shiro.subject.PrincipalCollection)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.subject.PrincipalCollection: java.lang.Object getPrimaryPrincipal()>();
return v;
label:
return null;
}
public java.lang.Object getPrincipal()
{
java.lang.Object v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.Object getPrimaryPrincipal(org.apache.shiro.subject.PrincipalCollection)>(v);
return v;
}
public org.apache.shiro.subject.PrincipalCollection getPrincipals()
{
java.util.List v;
java.lang.Object v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.List getRunAsPrincipalsStack()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
label:
return v;
}
public boolean isPermitted(java.lang.String)
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean isPermitted(org.apache.shiro.subject.PrincipalCollection,java.lang.String)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isPermitted(org.apache.shiro.authz.Permission)
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.authz.Permission v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.authz.Permission;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean isPermitted(org.apache.shiro.subject.PrincipalCollection,org.apache.shiro.authz.Permission)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public transient boolean[] isPermitted(java.lang.String[])
{
boolean[] v, v;
java.lang.String[] v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
int v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String[];
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean[] isPermitted(org.apache.shiro.subject.PrincipalCollection,java.lang.String[])>(v, v);
return v;
label:
v = lengthof v;
v = newarray (boolean)[v];
return v;
}
public boolean[] isPermitted(java.util.List)
{
boolean[] v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
java.util.List v;
int v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean[] isPermitted(org.apache.shiro.subject.PrincipalCollection,java.util.List)>(v, v);
return v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (boolean)[v];
return v;
}
public transient boolean isPermittedAll(java.lang.String[])
{
org.apache.shiro.mgt.SecurityManager v;
java.lang.String[] v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String[];
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean isPermittedAll(org.apache.shiro.subject.PrincipalCollection,java.lang.String[])>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isPermittedAll(java.util.Collection)
{
org.apache.shiro.mgt.SecurityManager v;
java.util.Collection v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.Collection;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean isPermittedAll(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected void assertAuthzCheckPossible() throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.authz.UnauthenticatedException v;
java.lang.Class v;
java.lang.String v, v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v != 0 goto label;
v = class "Lorg/apache/shiro/subject/Subject;";
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[])>("This subject is anonymous - it does not have any identifying principals and authorization operations require an identity to check against.  A Subject instance will acquire these identifying principals automatically after a successful login is performed be executing \u.login(AuthenticationToken) or when \'Remember Me\' functionality is enabled by the SecurityManager.  This exception can also occur when a previously logged-in Subject has logged out which makes it anonymous again.  Because an identity is currently not known due to any of these conditions, authorization is denied.");
v = new org.apache.shiro.authz.UnauthenticatedException;
specialinvoke v.<org.apache.shiro.authz.UnauthenticatedException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public void checkPermission(java.lang.String) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkPermission(org.apache.shiro.subject.PrincipalCollection,java.lang.String)>(v, v);
return;
}
public void checkPermission(org.apache.shiro.authz.Permission) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.authz.Permission v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.authz.Permission;
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkPermission(org.apache.shiro.subject.PrincipalCollection,org.apache.shiro.authz.Permission)>(v, v);
return;
}
public transient void checkPermissions(java.lang.String[]) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
java.lang.String[] v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String[];
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkPermissions(org.apache.shiro.subject.PrincipalCollection,java.lang.String[])>(v, v);
return;
}
public void checkPermissions(java.util.Collection) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
java.util.Collection v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.Collection;
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkPermissions(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)>(v, v);
return;
}
public boolean hasRole(java.lang.String)
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean hasRole(org.apache.shiro.subject.PrincipalCollection,java.lang.String)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean[] hasRoles(java.util.List)
{
boolean[] v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
java.util.List v;
int v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean[] hasRoles(org.apache.shiro.subject.PrincipalCollection,java.util.List)>(v, v);
return v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (boolean)[v];
return v;
}
public boolean hasAllRoles(java.util.Collection)
{
org.apache.shiro.mgt.SecurityManager v;
java.util.Collection v;
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.Collection;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: boolean hasAllRoles(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)>(v, v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void checkRole(java.lang.String) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String;
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkRole(org.apache.shiro.subject.PrincipalCollection,java.lang.String)>(v, v);
return;
}
public transient void checkRoles(java.lang.String[]) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
java.lang.String[] v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.String[];
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkRoles(org.apache.shiro.subject.PrincipalCollection,java.lang.String[])>(v, v);
return;
}
public void checkRoles(java.util.Collection) throws org.apache.shiro.authz.AuthorizationException
{
org.apache.shiro.mgt.SecurityManager v;
java.util.Collection v;
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.Collection;
virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void assertAuthzCheckPossible()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void checkRoles(org.apache.shiro.subject.PrincipalCollection,java.util.Collection)>(v, v);
return;
}
public void login(org.apache.shiro.authc.AuthenticationToken) throws org.apache.shiro.authc.AuthenticationException
{
java.lang.IllegalStateException v;
org.apache.shiro.authc.AuthenticationToken v;
org.apache.shiro.session.Session v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
boolean v, v, v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.authc.AuthenticationToken;
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void clearRunAsIdentitiesInternal()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: org.apache.shiro.subject.Subject login(org.apache.shiro.subject.Subject,org.apache.shiro.authc.AuthenticationToken)>(v, v);
v = null;
v = v instanceof org.apache.shiro.subject.support.DelegatingSubject;
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection principals>;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host>;
goto label;
label:
v = interfaceinvoke v.<org.apache.shiro.subject.Subject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
label:
if v == null goto label;
v = interfaceinvoke v.<org.apache.shiro.subject.PrincipalCollection: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Principals returned from securityManager.login( token ) returned a null or empty value.  This value must be non null and populated with one or more elements.");
throw v;
label:
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection principals> = v;
v.<org.apache.shiro.subject.support.DelegatingSubject: boolean authenticated> = 1;
v = v instanceof org.apache.shiro.authc.HostAuthenticationToken;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.authc.HostAuthenticationToken: java.lang.String getHost()>();
label:
if v == null goto label;
v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host> = v;
label:
v = interfaceinvoke v.<org.apache.shiro.subject.Subject: org.apache.shiro.session.Session getSession(boolean)>(0);
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session decorate(org.apache.shiro.session.Session)>(v);
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = v;
goto label;
label:
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = null;
label:
return;
}
public boolean isAuthenticated()
{
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: boolean authenticated>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isRemembered()
{
org.apache.shiro.subject.PrincipalCollection v;
boolean v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection getPrincipals()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.shiro.subject.PrincipalCollection: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean isAuthenticated()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected boolean isSessionCreationEnabled()
{
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: boolean sessionCreationEnabled>;
return v;
}
public org.apache.shiro.session.Session getSession()
{
org.apache.shiro.session.Session v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session getSession(boolean)>(1);
return v;
}
public org.apache.shiro.session.Session getSession(boolean)
{
org.apache.shiro.session.Session v, v, v, v, v, v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
org.apache.shiro.mgt.SecurityManager v;
java.lang.String v, v, v, v;
boolean v, v, v, v, v;
org.apache.shiro.session.mgt.SessionContext v;
org.slf4j.Logger v, v, v;
java.io.Serializable v;
org.apache.shiro.subject.support.DisabledSessionException v;
java.lang.Class v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: boolean;
v = <org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log>;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session>;
if v == null goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session>;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (boolean,boolean,boolean)>(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[])>("attempting to get session; create = \u; session is null = \u; session has id = \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session>;
if v != null goto label;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean isSessionCreationEnabled()>();
if v != 0 goto label;
v = class "Lorg/apache/shiro/subject/support/DisabledSessionException;";
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[])>("Session creation has been disabled for the current subject.  This exception indicates that there is either a programming error (using a session when it should never be used) or that Shiro\'s configuration needs to be adjusted to allow Sessions to be created for the current Subject.  See the \u JavaDoc for more.");
v = new org.apache.shiro.subject.support.DisabledSessionException;
specialinvoke v.<org.apache.shiro.subject.support.DisabledSessionException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String getHost()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Starting session for host {}", v);
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.mgt.SessionContext createSessionContext()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
v = interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: org.apache.shiro.session.Session start(org.apache.shiro.session.mgt.SessionContext)>(v);
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session decorate(org.apache.shiro.session.Session)>(v);
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = v;
label:
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session>;
return v;
}
protected org.apache.shiro.session.mgt.SessionContext createSessionContext()
{
org.apache.shiro.session.mgt.DefaultSessionContext v;
java.lang.String v, v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = new org.apache.shiro.session.mgt.DefaultSessionContext;
specialinvoke v.<org.apache.shiro.session.mgt.DefaultSessionContext: void <init>()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host>;
v = staticinvoke <org.apache.shiro.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String host>;
interfaceinvoke v.<org.apache.shiro.session.mgt.SessionContext: void setHost(java.lang.String)>(v);
label:
return v;
}
private void clearRunAsIdentitiesInternal()
{
org.apache.shiro.session.SessionException v;
org.slf4j.Logger v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
label:
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void clearRunAsIdentities()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Encountered session exception trying to clear \'runAs\' identities during logout.  This can generally safely be ignored.", v);
label:
return;
catch org.apache.shiro.session.SessionException from label to label with label;
}
public void logout()
{
java.lang.Throwable v;
org.apache.shiro.mgt.SecurityManager v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
label:
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void clearRunAsIdentitiesInternal()>();
v = v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.mgt.SecurityManager securityManager>;
interfaceinvoke v.<org.apache.shiro.mgt.SecurityManager: void logout(org.apache.shiro.subject.Subject)>(v);
label:
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = null;
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection principals> = null;
v.<org.apache.shiro.subject.support.DelegatingSubject: boolean authenticated> = 0;
goto label;
label:
v := @caughtexception;
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = null;
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection principals> = null;
v.<org.apache.shiro.subject.support.DelegatingSubject: boolean authenticated> = 0;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void sessionStopped()
{
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session session> = null;
return;
}
public java.lang.Object execute(java.util.concurrent.Callable) throws org.apache.shiro.subject.ExecutionException
{
java.lang.Throwable v;
org.apache.shiro.subject.ExecutionException v;
java.lang.Object v;
java.util.concurrent.Callable v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.concurrent.Callable;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.concurrent.Callable associateWith(java.util.concurrent.Callable)>(v);
label:
v = interfaceinvoke v.<java.util.concurrent.Callable: java.lang.Object call()>();
label:
return v;
label:
v := @caughtexception;
v = new org.apache.shiro.subject.ExecutionException;
specialinvoke v.<org.apache.shiro.subject.ExecutionException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public void execute(java.lang.Runnable)
{
java.lang.Runnable v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.Runnable;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.lang.Runnable associateWith(java.lang.Runnable)>(v);
interfaceinvoke v.<java.lang.Runnable: void run()>();
return;
}
public java.util.concurrent.Callable associateWith(java.util.concurrent.Callable)
{
java.util.concurrent.Callable v;
org.apache.shiro.subject.support.SubjectCallable v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.util.concurrent.Callable;
v = new org.apache.shiro.subject.support.SubjectCallable;
specialinvoke v.<org.apache.shiro.subject.support.SubjectCallable: void <init>(org.apache.shiro.subject.Subject,java.util.concurrent.Callable)>(v, v);
return v;
}
public java.lang.Runnable associateWith(java.lang.Runnable)
{
java.lang.UnsupportedOperationException v;
org.apache.shiro.subject.support.SubjectRunnable v;
java.lang.Runnable v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: java.lang.Runnable;
v = v instanceof java.lang.Thread;
if v == 0 goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("This implementation does not support Thread arguments because of JDK ThreadLocal inheritance mechanisms required by Shiro.  Instead, the method argument should be a non-Thread Runnable and the return value from this method can then be given to an ExecutorService or another Thread.");
throw v;
label:
v = new org.apache.shiro.subject.support.SubjectRunnable;
specialinvoke v.<org.apache.shiro.subject.support.SubjectRunnable: void <init>(org.apache.shiro.subject.Subject,java.lang.Runnable)>(v, v);
return v;
}
public void runAs(org.apache.shiro.subject.PrincipalCollection)
{
java.lang.IllegalStateException v;
java.lang.Class v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v, v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: boolean hasPrincipals()>();
if v != 0 goto label;
v = class "Lorg/apache/shiro/subject/Subject$Builder;";
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[])>("This subject does not yet have an identity.  Assuming the identity of another Subject is only allowed for Subjects with an existing identity.  Try logging this subject in first, or using the \u to build ad hoc Subject instances with identities as necessary.");
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void pushIdentity(org.apache.shiro.subject.PrincipalCollection)>(v);
return;
}
public boolean isRunAs()
{
java.util.List v;
boolean v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.List getRunAsPrincipalsStack()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.shiro.subject.PrincipalCollection getPreviousPrincipals()
{
java.util.List v;
int v;
java.lang.Object v;
java.lang.AssertionError v;
boolean v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.List getRunAsPrincipalsStack()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
goto label;
label:
v = 0;
label:
if v <= 0 goto label;
if v == 1 goto label;
v = <org.apache.shiro.subject.support.DelegatingSubject: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
label:
return v;
}
public org.apache.shiro.subject.PrincipalCollection releaseRunAs()
{
org.apache.shiro.subject.PrincipalCollection v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.subject.PrincipalCollection popIdentity()>();
return v;
}
private java.util.List getRunAsPrincipalsStack()
{
org.apache.shiro.session.SessionException v;
org.slf4j.Logger v;
java.lang.Object v;
java.lang.String v;
org.apache.shiro.session.Session v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session getSession(boolean)>(0);
if v == null goto label;
label:
v = <org.apache.shiro.subject.support.DelegatingSubject: java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY>;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.lang.Object getAttribute(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Encountered session exception trying to get \'runAs\' principal stack.  This can generally safely be ignored.", v);
label:
return null;
catch org.apache.shiro.session.SessionException from label to label with label;
}
private void clearRunAsIdentities()
{
java.lang.String v;
org.apache.shiro.session.Session v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session getSession(boolean)>(0);
if v == null goto label;
v = <org.apache.shiro.subject.support.DelegatingSubject: java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY>;
interfaceinvoke v.<org.apache.shiro.session.Session: java.lang.Object removeAttribute(java.lang.Object)>(v);
label:
return;
}
private void pushIdentity(org.apache.shiro.subject.PrincipalCollection) throws java.lang.NullPointerException
{
org.apache.shiro.session.Session v;
java.lang.NullPointerException v;
org.apache.shiro.subject.support.DelegatingSubject v;
java.util.List v;
org.apache.shiro.subject.PrincipalCollection v;
java.lang.String v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v := @parameter: org.apache.shiro.subject.PrincipalCollection;
v = staticinvoke <org.apache.shiro.subject.support.DelegatingSubject: boolean isEmpty(org.apache.shiro.subject.PrincipalCollection)>(v);
if v == 0 goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("Specified Subject principals cannot be null or empty for \'run as\' functionality.");
throw v;
label:
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.List getRunAsPrincipalsStack()>();
if v != null goto label;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v = v;
label:
interfaceinvoke v.<java.util.List: void add(int,java.lang.Object)>(0, v);
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session getSession()>();
v = <org.apache.shiro.subject.support.DelegatingSubject: java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY>;
interfaceinvoke v.<org.apache.shiro.session.Session: void setAttribute(java.lang.Object,java.lang.Object)>(v, v);
return;
}
private org.apache.shiro.subject.PrincipalCollection popIdentity()
{
java.util.List v;
java.lang.Object v;
java.lang.String v;
org.apache.shiro.session.Session v;
boolean v, v;
org.apache.shiro.subject.support.DelegatingSubject v;
v := @this: org.apache.shiro.subject.support.DelegatingSubject;
v = specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: java.util.List getRunAsPrincipalsStack()>();
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(0);
v = staticinvoke <org.apache.shiro.util.CollectionUtils: boolean isEmpty(java.util.Collection)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: org.apache.shiro.session.Session getSession()>();
v = <org.apache.shiro.subject.support.DelegatingSubject: java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY>;
interfaceinvoke v.<org.apache.shiro.session.Session: void setAttribute(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
specialinvoke v.<org.apache.shiro.subject.support.DelegatingSubject: void clearRunAsIdentities()>();
label:
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.lang.Class v, v;
java.lang.String v, v;
boolean v, v;
v = class "Lorg/apache/shiro/subject/support/DelegatingSubject;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.apache.shiro.subject.support.DelegatingSubject: boolean $assertionsDisabled> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/subject/support/DelegatingSubject;");
<org.apache.shiro.subject.support.DelegatingSubject: org.slf4j.Logger log> = v;
v = class "Lorg/apache/shiro/subject/support/DelegatingSubject;";
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[])>("\u.RUN_AS_PRINCIPALS_SESSION_KEY");
<org.apache.shiro.subject.support.DelegatingSubject: java.lang.String RUN_AS_PRINCIPALS_SESSION_KEY> = v;
return;
}
}