public class org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory extends org.springframework.remoting.support.DefaultRemoteInvocationFactory
{
private static final org.slf4j.Logger log;
public static final java.lang.String SESSION_ID_KEY;
public static final java.lang.String HOST_KEY;
private static final java.lang.String SESSION_ID_SYSTEM_PROPERTY_NAME;
private java.lang.String sessionId;
public void <init>()
{
org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory v;
v := @this: org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory;
specialinvoke v.<org.springframework.remoting.support.DefaultRemoteInvocationFactory: void <init>()>();
return;
}
public void <init>(java.lang.String)
{
org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory v;
java.lang.String v;
v := @this: org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: void <init>()>();
v.<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String sessionId> = v;
return;
}
public org.springframework.remoting.support.RemoteInvocation createRemoteInvocation(org.aopalliance.intercept.MethodInvocation)
{
java.lang.Object[] v;
org.springframework.remoting.support.RemoteInvocation v;
org.apache.shiro.session.Session v;
org.aopalliance.intercept.MethodInvocation v;
org.apache.shiro.subject.Subject v;
java.lang.String v, v, v, v;
java.lang.reflect.Method v, v;
boolean v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v;
java.lang.Exception v;
java.io.Serializable v;
org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory v;
java.lang.Class v, v, v;
java.lang.Object v;
v := @this: org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory;
v := @parameter: org.aopalliance.intercept.MethodInvocation;
v = null;
v = null;
v = 0;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getDeclaringClass()>();
v = class "Lorg/apache/shiro/session/mgt/SessionManager;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Lorg/apache/shiro/session/mgt/NativeSessionManager;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.reflect.Method getMethod()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("start");
if v != 0 goto label;
v = interfaceinvoke v.<org.aopalliance.intercept.MethodInvocation: java.lang.Object[] getArguments()>();
v = v[0];
v = interfaceinvoke v.<org.apache.shiro.session.mgt.SessionKey: java.io.Serializable getSessionId()>();
label:
if v != null goto label;
v = v.<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String sessionId>;
if v != null goto label;
label:
staticinvoke <org.apache.shiro.SecurityUtils: org.apache.shiro.mgt.SecurityManager getSecurityManager()>();
if v != 0 goto label;
v = staticinvoke <org.apache.shiro.SecurityUtils: org.apache.shiro.subject.Subject getSubject()>();
v = interfaceinvoke v.<org.apache.shiro.subject.Subject: org.apache.shiro.session.Session getSession(boolean)>(0);
if v == null goto label;
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.io.Serializable getId()>();
v = interfaceinvoke v.<org.apache.shiro.session.Session: java.lang.String getHost()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("No security manager set. Trying next to get session id from system property");
label:
if v != null goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("No Session found for the currently executing subject via subject.getSession(false).  Attempting to revert back to the \'shiro.session.id\' system property...");
label:
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("shiro.session.id");
if v != null goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("No \'shiro.session.id\' system property found.  Heuristics have been exhausted; RemoteInvocation will not contain a sessionId.");
label:
v = new org.springframework.remoting.support.RemoteInvocation;
specialinvoke v.<org.springframework.remoting.support.RemoteInvocation: void <init>(org.aopalliance.intercept.MethodInvocation)>(v);
if v == null goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String SESSION_ID_KEY>;
virtualinvoke v.<org.springframework.remoting.support.RemoteInvocation: void addAttribute(java.lang.String,java.io.Serializable)>(v, v);
label:
if v == null goto label;
v = <org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String HOST_KEY>;
virtualinvoke v.<org.springframework.remoting.support.RemoteInvocation: void addAttribute(java.lang.String,java.io.Serializable)>(v, v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.lang.Class v, v;
java.lang.String v, v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/spring/remoting/SecureRemoteInvocationFactory;");
<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: org.slf4j.Logger log> = v;
v = class "Lorg/apache/shiro/spring/remoting/SecureRemoteInvocationFactory;";
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.SESSION_ID_KEY");
<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String SESSION_ID_KEY> = v;
v = class "Lorg/apache/shiro/spring/remoting/SecureRemoteInvocationFactory;";
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.HOST_KEY");
<org.apache.shiro.spring.remoting.SecureRemoteInvocationFactory: java.lang.String HOST_KEY> = v;
return;
}
}