public class org.apache.shiro.web.servlet.ShiroHttpServletResponse extends javax.servlet.http.HttpServletResponseWrapper
{
private static final java.lang.String DEFAULT_SESSION_ID_PARAMETER_NAME;
private javax.servlet.ServletContext context;
private org.apache.shiro.web.servlet.ShiroHttpServletRequest request;
public void <init>(javax.servlet.http.HttpServletResponse, javax.servlet.ServletContext, org.apache.shiro.web.servlet.ShiroHttpServletRequest)
{
javax.servlet.http.HttpServletResponse v;
javax.servlet.ServletContext v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: javax.servlet.http.HttpServletResponse;
v := @parameter: javax.servlet.ServletContext;
v := @parameter: org.apache.shiro.web.servlet.ShiroHttpServletRequest;
specialinvoke v.<javax.servlet.http.HttpServletResponseWrapper: void <init>(javax.servlet.http.HttpServletResponse)>(v);
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: javax.servlet.ServletContext context> = null;
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request> = null;
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: javax.servlet.ServletContext context> = v;
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request> = v;
return;
}
public javax.servlet.ServletContext getContext()
{
javax.servlet.ServletContext v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: javax.servlet.ServletContext context>;
return v;
}
public void setContext(javax.servlet.ServletContext)
{
javax.servlet.ServletContext v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: javax.servlet.ServletContext;
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: javax.servlet.ServletContext context> = v;
return;
}
public org.apache.shiro.web.servlet.ShiroHttpServletRequest getRequest()
{
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
return v;
}
public void setRequest(org.apache.shiro.web.servlet.ShiroHttpServletRequest)
{
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: org.apache.shiro.web.servlet.ShiroHttpServletRequest;
v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request> = v;
return;
}
public java.lang.String encodeRedirectURL(java.lang.String)
{
javax.servlet.http.HttpSession v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
java.lang.String v, v, v, v;
boolean v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String toAbsolute(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: boolean isEncodeable(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: javax.servlet.http.HttpSession getSession()>();
v = interfaceinvoke v.<javax.servlet.http.HttpSession: java.lang.String getId()>();
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String toEncoded(java.lang.String,java.lang.String)>(v, v);
return v;
label:
return v;
}
public java.lang.String encodeRedirectUrl(java.lang.String)
{
java.lang.String v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String encodeRedirectURL(java.lang.String)>(v);
return v;
}
public java.lang.String encodeURL(java.lang.String)
{
javax.servlet.http.HttpSession v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
java.lang.String v, v, v, v;
boolean v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String toAbsolute(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: boolean isEncodeable(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>("");
if v == 0 goto label;
v = v;
label:
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: javax.servlet.http.HttpSession getSession()>();
v = interfaceinvoke v.<javax.servlet.http.HttpSession: java.lang.String getId()>();
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String toEncoded(java.lang.String,java.lang.String)>(v, v);
return v;
label:
return v;
}
public java.lang.String encodeUrl(java.lang.String)
{
java.lang.String v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String encodeURL(java.lang.String)>(v);
return v;
}
protected boolean isEncodeable(java.lang.String)
{
javax.servlet.http.HttpSession v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v, v;
java.lang.Boolean v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v, v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = <java.lang.Boolean: java.lang.Boolean FALSE>;
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = <org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String SESSION_ID_URL_REWRITING_ENABLED>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.Object getAttribute(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("#");
if v == 0 goto label;
return 0;
label:
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: javax.servlet.http.HttpSession getSession(boolean)>(0);
if v != null goto label;
return 0;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: boolean isRequestedSessionIdFromCookie()>();
if v == 0 goto label;
return 0;
label:
v = specialinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: boolean doIsEncodeable(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpSession,java.lang.String)>(v, v, v);
return v;
}
private boolean doIsEncodeable(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpSession, java.lang.String)
{
java.net.URL v;
javax.servlet.http.HttpServletRequest v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
javax.servlet.http.HttpSession v;
java.net.MalformedURLException v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpSession;
v := @parameter: java.lang.String;
label:
v = new java.net.URL;
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
return 0;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getScheme()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
return 0;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getServerName()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getHost()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
return 0;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: int getServerPort()>();
v = (int) -1;
if v != v goto label;
v = "https";
v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getScheme()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 443;
goto label;
label:
v = 80;
label:
v = virtualinvoke v.<java.net.URL: int getPort()>();
v = (int) -1;
if v != v goto label;
v = "https";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 443;
goto label;
label:
v = 80;
label:
if v == v goto label;
return 0;
label:
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest getRequest()>();
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String getContextPath()>();
if v == null goto label;
v = virtualinvoke v.<java.net.URL: java.lang.String getFile()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v != 0 goto label;
label:
return 0;
label:
v = interfaceinvoke v.<javax.servlet.http.HttpSession: java.lang.String getId()>();
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[])>(";JSESSIONID=\u0001");
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String,int)>(v, v);
if v < 0 goto label;
return 0;
label:
return 1;
catch java.net.MalformedURLException from label to label with label;
}
private java.lang.String toAbsolute(java.lang.String)
{
int v, v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
java.io.IOException v;
java.lang.IllegalArgumentException v;
org.apache.shiro.web.servlet.ShiroHttpServletRequest v, v, v, v;
java.lang.StringBuilder v, v, v, v, v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
if v != null goto label;
return v;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
if v != 0 goto label;
v = specialinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: boolean hasScheme(java.lang.String)>(v);
if v != 0 goto label;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String getScheme()>();
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String getServerName()>();
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: int getServerPort()>();
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("://");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("http");
if v == 0 goto label;
if v != 80 goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("https");
if v == 0 goto label;
if v == 443 goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(58);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
label:
if v != 0 goto label;
v = v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: org.apache.shiro.web.servlet.ShiroHttpServletRequest request>;
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletRequest: java.lang.String getRequestURI()>();
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(47);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = virtualinvoke v.<org.apache.shiro.web.servlet.ShiroHttpServletResponse: java.lang.String getCharacterEncoding()>();
v = staticinvoke <java.net.URLEncoder: java.lang.String encode(java.lang.String,java.lang.String)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(47);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.lang.IllegalArgumentException: java.lang.Throwable initCause(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
label:
return v;
catch java.io.IOException from label to label with label;
}
public static boolean isSchemeChar(char)
{
char v;
boolean v, v;
v := @parameter: char;
v = staticinvoke <java.lang.Character: boolean isLetterOrDigit(char)>(v);
if v != 0 goto label;
if v == 43 goto label;
if v == 45 goto label;
if v != 46 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean hasScheme(java.lang.String)
{
int v, v;
char v;
java.lang.String v;
boolean v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 58 goto label;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = staticinvoke <org.apache.shiro.web.servlet.ShiroHttpServletResponse: boolean isSchemeChar(char)>(v);
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 0;
}
protected java.lang.String toEncoded(java.lang.String, java.lang.String)
{
int v, v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v, v, v;
org.apache.shiro.web.servlet.ShiroHttpServletResponse v;
v := @this: org.apache.shiro.web.servlet.ShiroHttpServletResponse;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v == null goto label;
if v != null goto label;
label:
return v;
label:
v = v;
v = "";
v = "";
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(63);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(35);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(";");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("JSESSIONID");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("=");
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
}