public class org.apache.shiro.web.util.WebUtils extends java.lang.Object
{
private static final org.slf4j.Logger log;
public static final java.lang.String SERVLET_REQUEST_KEY;
public static final java.lang.String SERVLET_RESPONSE_KEY;
public static final java.lang.String ALLOW_BACKSLASH;
public static final java.lang.String SAVED_REQUEST_KEY;
public static final java.lang.String INCLUDE_REQUEST_URI_ATTRIBUTE;
public static final java.lang.String INCLUDE_CONTEXT_PATH_ATTRIBUTE;
public static final java.lang.String INCLUDE_SERVLET_PATH_ATTRIBUTE;
public static final java.lang.String INCLUDE_PATH_INFO_ATTRIBUTE;
public static final java.lang.String INCLUDE_QUERY_STRING_ATTRIBUTE;
public static final java.lang.String FORWARD_REQUEST_URI_ATTRIBUTE;
public static final java.lang.String FORWARD_CONTEXT_PATH_ATTRIBUTE;
public static final java.lang.String FORWARD_SERVLET_PATH_ATTRIBUTE;
public static final java.lang.String FORWARD_PATH_INFO_ATTRIBUTE;
public static final java.lang.String FORWARD_QUERY_STRING_ATTRIBUTE;
public static final java.lang.String DEFAULT_CHARACTER_ENCODING;
public void <init>()
{
org.apache.shiro.web.util.WebUtils v;
v := @this: org.apache.shiro.web.util.WebUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.String getPathWithinApplication(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.String v, v, v, v, v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String getServletPath(javax.servlet.http.HttpServletRequest)>(v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String getPathInfo(javax.servlet.http.HttpServletRequest)>(v);
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[])>("\u0001\u0001");
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String removeSemicolon(java.lang.String)>(v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
}
public static java.lang.String getRequestUri(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.Object v;
java.lang.String v, v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.Object getAttribute(java.lang.String)>("javax.servlet.include.request_uri");
if v != null goto label;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getRequestURI()>();
label:
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String decodeAndCleanUriString(javax.servlet.http.HttpServletRequest,java.lang.String)>(v, v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
}
private static java.lang.String getServletPath(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.Object v;
java.lang.String v, v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.Object getAttribute(java.lang.String)>("javax.servlet.include.servlet_path");
if v == null goto label;
v = v;
goto label;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getServletPath()>();
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String valueOrEmpty(java.lang.String)>(v);
label:
return v;
}
private static java.lang.String getPathInfo(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.Object v;
java.lang.String v, v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.Object getAttribute(java.lang.String)>("javax.servlet.include.path_info");
if v == null goto label;
v = v;
goto label;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getPathInfo()>();
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String valueOrEmpty(java.lang.String)>(v);
label:
return v;
}
private static java.lang.String valueOrEmpty(java.lang.String)
{
java.lang.String v;
v := @parameter: java.lang.String;
if v != null goto label;
return "";
label:
return v;
}
public static java.lang.String normalize(java.lang.String)
{
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("org.apache.shiro.web.ALLOW_BACKSLASH");
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String normalize(java.lang.String,boolean)>(v, v);
return v;
}
private static java.lang.String normalize(java.lang.String, boolean)
{
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v != null goto label;
return null;
label:
v = v;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(92);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(92, 47);
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("/.");
if v == 0 goto label;
return "/";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
if v != 0 goto label;
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[])>("/\u0001");
label:
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("//");
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
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[])>("\u0001\u0001");
goto label;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("/./");
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = v + 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
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[])>("\u0001\u0001");
goto label;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("/../");
if v < 0 goto label;
if v != 0 goto label;
return null;
label:
v = v - 1;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int,int)>(47, v);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = v + 3;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
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[])>("\u0001\u0001");
goto label;
label:
return v;
}
private static java.lang.String decodeAndCleanUriString(javax.servlet.http.HttpServletRequest, java.lang.String)
{
javax.servlet.http.HttpServletRequest v;
java.lang.String v, v, v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String decodeRequestString(javax.servlet.http.HttpServletRequest,java.lang.String)>(v, v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String removeSemicolon(java.lang.String)>(v);
return v;
}
private static java.lang.String removeSemicolon(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(59);
v = (int) -1;
if v == v goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
goto label;
label:
v = v;
label:
return v;
}
public static java.lang.String getContextPath(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.Object getAttribute(java.lang.String)>("javax.servlet.include.context_path");
if v != null goto label;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
label:
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String decodeRequestString(javax.servlet.http.HttpServletRequest,java.lang.String)>(v, v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String normalize(java.lang.String)>(v);
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = "";
label:
return v;
}
public static org.apache.shiro.web.env.WebEnvironment getRequiredWebEnvironment(javax.servlet.ServletContext) throws java.lang.IllegalStateException
{
java.lang.IllegalStateException v;
javax.servlet.ServletContext v;
org.apache.shiro.web.env.WebEnvironment v;
v := @parameter: javax.servlet.ServletContext;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: org.apache.shiro.web.env.WebEnvironment getWebEnvironment(javax.servlet.ServletContext)>(v);
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No WebEnvironment found: no EnvironmentLoaderListener registered?");
throw v;
label:
return v;
}
public static org.apache.shiro.web.env.WebEnvironment getWebEnvironment(javax.servlet.ServletContext)
{
javax.servlet.ServletContext v;
java.lang.String v;
org.apache.shiro.web.env.WebEnvironment v;
v := @parameter: javax.servlet.ServletContext;
v = <org.apache.shiro.web.env.EnvironmentLoader: java.lang.String ENVIRONMENT_ATTRIBUTE_KEY>;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: org.apache.shiro.web.env.WebEnvironment getWebEnvironment(javax.servlet.ServletContext,java.lang.String)>(v, v);
return v;
}
public static org.apache.shiro.web.env.WebEnvironment getWebEnvironment(javax.servlet.ServletContext, java.lang.String)
{
java.lang.IllegalStateException v, v;
java.lang.IllegalArgumentException v;
java.lang.Object v;
javax.servlet.ServletContext v;
java.lang.String v, v;
boolean v, v, v, v;
v := @parameter: javax.servlet.ServletContext;
v := @parameter: java.lang.String;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("ServletContext argument must not be null.");
throw v;
label:
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
if v != null goto label;
return null;
label:
v = v instanceof java.lang.RuntimeException;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.Error;
if v == 0 goto label;
throw v;
label:
v = v instanceof java.lang.Exception;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v instanceof org.apache.shiro.web.env.WebEnvironment;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("Context attribute is not of type WebEnvironment: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public static java.lang.String decodeRequestString(javax.servlet.http.HttpServletRequest, java.lang.String)
{
org.slf4j.Logger v, v;
javax.servlet.http.HttpServletRequest v;
java.lang.String v, v, v, v, v, v, v, v;
java.io.UnsupportedEncodingException v;
boolean v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String determineEncoding(javax.servlet.http.HttpServletRequest)>(v);
label:
v = staticinvoke <java.net.URLDecoder: java.lang.String decode(java.lang.String,java.lang.String)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.shiro.web.util.WebUtils: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.web.util.WebUtils: org.slf4j.Logger log>;
v = staticinvoke <org.owasp.encoder.Encode: java.lang.String forHtml(java.lang.String)>(v);
v = staticinvoke <org.owasp.encoder.Encode: java.lang.String forHtml(java.lang.String)>(v);
v = virtualinvoke v.<java.io.UnsupportedEncodingException: java.lang.String getMessage()>();
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[])>("Could not decode request string [\u] with encoding \'\u0001\': falling back to platform default encoding; exception message: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
v = staticinvoke <java.net.URLDecoder: java.lang.String decode(java.lang.String)>(v);
return v;
catch java.io.UnsupportedEncodingException from label to label with label;
}
protected static java.lang.String determineEncoding(javax.servlet.http.HttpServletRequest)
{
javax.servlet.http.HttpServletRequest v;
java.lang.String v;
v := @parameter: javax.servlet.http.HttpServletRequest;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getCharacterEncoding()>();
if v != null goto label;
v = "ISO-8859-1";
label:
return v;
}
public static boolean isWeb(java.lang.Object)
{
java.lang.Object v;
boolean v, v, v;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.shiro.web.util.RequestPairSource;
if v == 0 goto label;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: boolean isWeb(org.apache.shiro.web.util.RequestPairSource)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static boolean isHttp(java.lang.Object)
{
java.lang.Object v;
boolean v, v, v;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.shiro.web.util.RequestPairSource;
if v == 0 goto label;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: boolean isHttp(org.apache.shiro.web.util.RequestPairSource)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static javax.servlet.ServletRequest getRequest(java.lang.Object)
{
java.lang.Object v;
javax.servlet.ServletRequest v;
boolean v;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.shiro.web.util.RequestPairSource;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletRequest getServletRequest()>();
return v;
label:
return null;
}
public static javax.servlet.ServletResponse getResponse(java.lang.Object)
{
java.lang.Object v;
javax.servlet.ServletResponse v;
boolean v;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.shiro.web.util.RequestPairSource;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletResponse getServletResponse()>();
return v;
label:
return null;
}
public static javax.servlet.http.HttpServletRequest getHttpRequest(java.lang.Object)
{
java.lang.Object v;
javax.servlet.ServletRequest v;
boolean v;
v := @parameter: java.lang.Object;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.ServletRequest getRequest(java.lang.Object)>(v);
v = v instanceof javax.servlet.http.HttpServletRequest;
if v == 0 goto label;
return v;
label:
return null;
}
public static javax.servlet.http.HttpServletResponse getHttpResponse(java.lang.Object)
{
java.lang.Object v;
javax.servlet.ServletResponse v;
boolean v;
v := @parameter: java.lang.Object;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.ServletResponse getResponse(java.lang.Object)>(v);
v = v instanceof javax.servlet.http.HttpServletResponse;
if v == 0 goto label;
return v;
label:
return null;
}
private static boolean isWeb(org.apache.shiro.web.util.RequestPairSource)
{
javax.servlet.ServletRequest v;
javax.servlet.ServletResponse v;
org.apache.shiro.web.util.RequestPairSource v;
boolean v;
v := @parameter: org.apache.shiro.web.util.RequestPairSource;
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletRequest getServletRequest()>();
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletResponse getServletResponse()>();
if v == null goto label;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isHttp(org.apache.shiro.web.util.RequestPairSource)
{
javax.servlet.ServletRequest v;
javax.servlet.ServletResponse v;
org.apache.shiro.web.util.RequestPairSource v;
boolean v, v, v;
v := @parameter: org.apache.shiro.web.util.RequestPairSource;
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletRequest getServletRequest()>();
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletResponse getServletResponse()>();
v = v instanceof javax.servlet.http.HttpServletRequest;
if v == 0 goto label;
v = v instanceof javax.servlet.http.HttpServletResponse;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static boolean _isSessionCreationEnabled(java.lang.Object)
{
javax.servlet.ServletRequest v;
java.lang.Object v;
boolean v, v;
v := @parameter: java.lang.Object;
v = v instanceof org.apache.shiro.web.util.RequestPairSource;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.shiro.web.util.RequestPairSource: javax.servlet.ServletRequest getServletRequest()>();
v = staticinvoke <org.apache.shiro.web.util.WebUtils: boolean _isSessionCreationEnabled(javax.servlet.ServletRequest)>(v);
return v;
label:
return 1;
}
public static boolean _isSessionCreationEnabled(javax.servlet.ServletRequest)
{
javax.servlet.ServletRequest v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @parameter: javax.servlet.ServletRequest;
if v == null goto label;
v = <org.apache.shiro.subject.support.DefaultSubjectContext: java.lang.String SESSION_CREATION_ENABLED>;
v = interfaceinvoke v.<javax.servlet.ServletRequest: java.lang.Object getAttribute(java.lang.String)>(v);
if v == null goto label;
v = v instanceof java.lang.Boolean;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
label:
return 1;
}
public static javax.servlet.http.HttpServletRequest toHttp(javax.servlet.ServletRequest)
{
javax.servlet.ServletRequest v;
v := @parameter: javax.servlet.ServletRequest;
return v;
}
public static javax.servlet.http.HttpServletResponse toHttp(javax.servlet.ServletResponse)
{
javax.servlet.ServletResponse v;
v := @parameter: javax.servlet.ServletResponse;
return v;
}
public static void issueRedirect(javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String, java.util.Map, boolean, boolean) throws java.io.IOException
{
javax.servlet.ServletRequest v;
javax.servlet.http.HttpServletResponse v;
javax.servlet.http.HttpServletRequest v;
javax.servlet.ServletResponse v;
org.apache.shiro.web.util.RedirectView v;
java.util.Map v;
java.lang.String v;
boolean v, v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: javax.servlet.ServletResponse;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v := @parameter: boolean;
v = new org.apache.shiro.web.util.RedirectView;
specialinvoke v.<org.apache.shiro.web.util.RedirectView: void <init>(java.lang.String,boolean,boolean)>(v, v, v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.http.HttpServletRequest toHttp(javax.servlet.ServletRequest)>(v);
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.http.HttpServletResponse toHttp(javax.servlet.ServletResponse)>(v);
virtualinvoke v.<org.apache.shiro.web.util.RedirectView: void renderMergedOutputModel(java.util.Map,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)>(v, v, v);
return;
}
public static void issueRedirect(javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String) throws java.io.IOException
{
javax.servlet.ServletRequest v;
java.lang.String v;
javax.servlet.ServletResponse v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: javax.servlet.ServletResponse;
v := @parameter: java.lang.String;
staticinvoke <org.apache.shiro.web.util.WebUtils: void issueRedirect(javax.servlet.ServletRequest,javax.servlet.ServletResponse,java.lang.String,java.util.Map,boolean,boolean)>(v, v, v, null, 1, 1);
return;
}
public static void issueRedirect(javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String, java.util.Map) throws java.io.IOException
{
javax.servlet.ServletRequest v;
javax.servlet.ServletResponse v;
java.util.Map v;
java.lang.String v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: javax.servlet.ServletResponse;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
staticinvoke <org.apache.shiro.web.util.WebUtils: void issueRedirect(javax.servlet.ServletRequest,javax.servlet.ServletResponse,java.lang.String,java.util.Map,boolean,boolean)>(v, v, v, v, 1, 1);
return;
}
public static void issueRedirect(javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String, java.util.Map, boolean) throws java.io.IOException
{
javax.servlet.ServletRequest v;
javax.servlet.ServletResponse v;
java.util.Map v;
java.lang.String v;
boolean v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: javax.servlet.ServletResponse;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
staticinvoke <org.apache.shiro.web.util.WebUtils: void issueRedirect(javax.servlet.ServletRequest,javax.servlet.ServletResponse,java.lang.String,java.util.Map,boolean,boolean)>(v, v, v, v, v, 1);
return;
}
public static boolean isTrue(javax.servlet.ServletRequest, java.lang.String)
{
javax.servlet.ServletRequest v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v, v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String getCleanParam(javax.servlet.ServletRequest,java.lang.String)>(v, v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("true");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("t");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("1");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("enabled");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("y");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("yes");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("on");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.lang.String getCleanParam(javax.servlet.ServletRequest, java.lang.String)
{
javax.servlet.ServletRequest v;
java.lang.String v, v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: java.lang.String getCleanParam(javax.servlet.ServletRequest,java.lang.String,boolean)>(v, v, 1);
return v;
}
public static java.lang.String getCleanParam(javax.servlet.ServletRequest, java.lang.String, boolean)
{
javax.servlet.ServletRequest v;
java.lang.String v, v, v;
boolean v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = interfaceinvoke v.<javax.servlet.ServletRequest: java.lang.String getParameter(java.lang.String)>(v);
v = staticinvoke <org.apache.shiro.util.StringUtils: java.lang.String clean(java.lang.String,boolean)>(v, v);
return v;
}
public static void saveRequest(javax.servlet.ServletRequest)
{
javax.servlet.ServletRequest v;
javax.servlet.http.HttpServletRequest v;
org.apache.shiro.web.util.SavedRequest v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.session.Session v;
v := @parameter: javax.servlet.ServletRequest;
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()>();
v = staticinvoke <org.apache.shiro.web.util.WebUtils: javax.servlet.http.HttpServletRequest toHttp(javax.servlet.ServletRequest)>(v);
v = new org.apache.shiro.web.util.SavedRequest;
specialinvoke v.<org.apache.shiro.web.util.SavedRequest: void <init>(javax.servlet.http.HttpServletRequest)>(v);
interfaceinvoke v.<org.apache.shiro.session.Session: void setAttribute(java.lang.Object,java.lang.Object)>("shiroSavedRequest", v);
return;
}
public static org.apache.shiro.web.util.SavedRequest getAndClearSavedRequest(javax.servlet.ServletRequest)
{
javax.servlet.ServletRequest v;
org.apache.shiro.web.util.SavedRequest v;
org.apache.shiro.subject.Subject v;
org.apache.shiro.session.Session v;
v := @parameter: javax.servlet.ServletRequest;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: org.apache.shiro.web.util.SavedRequest getSavedRequest(javax.servlet.ServletRequest)>(v);
if v == null 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()>();
interfaceinvoke v.<org.apache.shiro.session.Session: java.lang.Object removeAttribute(java.lang.Object)>("shiroSavedRequest");
label:
return v;
}
public static org.apache.shiro.web.util.SavedRequest getSavedRequest(javax.servlet.ServletRequest)
{
javax.servlet.ServletRequest v;
org.apache.shiro.subject.Subject v;
java.lang.Object v;
org.apache.shiro.session.Session v;
v := @parameter: javax.servlet.ServletRequest;
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.lang.Object getAttribute(java.lang.Object)>("shiroSavedRequest");
label:
return v;
}
public static void redirectToSavedRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String) throws java.io.IOException
{
java.lang.IllegalStateException v;
javax.servlet.ServletRequest v;
org.apache.shiro.web.util.SavedRequest v;
javax.servlet.ServletResponse v;
java.lang.String v, v, v;
boolean v, v;
v := @parameter: javax.servlet.ServletRequest;
v := @parameter: javax.servlet.ServletResponse;
v := @parameter: java.lang.String;
v = null;
v = 1;
v = staticinvoke <org.apache.shiro.web.util.WebUtils: org.apache.shiro.web.util.SavedRequest getAndClearSavedRequest(javax.servlet.ServletRequest)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.shiro.web.util.SavedRequest: java.lang.String getMethod()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("GET");
if v == 0 goto label;
v = virtualinvoke v.<org.apache.shiro.web.util.SavedRequest: java.lang.String getRequestUrl()>();
v = 0;
label:
if v != null goto label;
v = v;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Success URL not available via saved request or via the successUrlFallback method parameter. One of these must be non-null for issueSuccessRedirect() to work.");
throw v;
label:
staticinvoke <org.apache.shiro.web.util.WebUtils: void issueRedirect(javax.servlet.ServletRequest,javax.servlet.ServletResponse,java.lang.String,java.util.Map,boolean)>(v, v, v, null, v);
return;
}
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/web/util/WebUtils;");
<org.apache.shiro.web.util.WebUtils: org.slf4j.Logger log> = v;
v = class "Ljavax/servlet/ServletRequest;";
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[])>("\u0001_SHIRO_THREAD_CONTEXT_KEY");
<org.apache.shiro.web.util.WebUtils: java.lang.String SERVLET_REQUEST_KEY> = v;
v = class "Ljavax/servlet/ServletResponse;";
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[])>("\u0001_SHIRO_THREAD_CONTEXT_KEY");
<org.apache.shiro.web.util.WebUtils: java.lang.String SERVLET_RESPONSE_KEY> = v;
return;
}
}