public class org.glassfish.grizzly.http.util.CookieHeaderGenerator extends java.lang.Object
{
public static final java.lang.String COOKIE_COMMENT_ATTR;
public static final java.lang.String COOKIE_DOMAIN_ATTR;
public static final java.lang.String COOKIE_MAX_AGE_ATTR;
public static final java.lang.String COOKIE_PATH_ATTR;
public static final java.lang.String COOKIE_SECURE_ATTR;
public static final java.lang.String COOKIE_HTTP_ONLY_ATTR;
private static final java.lang.String COOKIE_DATE_PATTERN;
protected static final java.lang.ThreadLocal COOKIE_DATE_FORMAT;
protected static final java.lang.String ANCIENT_DATE;
private static final java.util.BitSet domainValid;
public void <init>()
{
org.glassfish.grizzly.http.util.CookieHeaderGenerator v;
v := @this: org.glassfish.grizzly.http.util.CookieHeaderGenerator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.String generateHeader(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, boolean, boolean, java.util.Map)
{
java.util.Date v;
byte v;
java.text.FieldPosition v;
java.util.Map v;
boolean v, v, v, v, v, v, v, v, v, v;
java.lang.ThreadLocal v;
java.util.Set v;
long v, v, v;
java.lang.StringBuffer v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
java.util.Iterator v;
java.lang.Object v, v, v, v, v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.util.Map;
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(61);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator: void validateCookieValue(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
label:
v = (int) -1;
if v <= v goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; Max-Age=");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(int)>(v);
v = <org.glassfish.grizzly.http.util.CookieUtils: boolean ALWAYS_ADD_EXPIRES>;
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; Expires=");
if v != 0 goto label;
v = <org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.lang.String ANCIENT_DATE>;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
goto label;
label:
v = <org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.lang.ThreadLocal COOKIE_DATE_FORMAT>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
v = new java.util.Date;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v * 1000L;
v = v + v;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = new java.text.FieldPosition;
specialinvoke v.<java.text.FieldPosition: void <init>(int)>(0);
virtualinvoke v.<java.text.DateFormat: java.lang.StringBuffer format(java.util.Date,java.lang.StringBuffer,java.text.FieldPosition)>(v, v, v);
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator: void validateDomain(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; Domain=");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator: void validatePath(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; Path=");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; Secure");
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; HttpOnly");
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1822406761: goto label;
case -1787404074: goto label;
case -1679915457: goto label;
case -68584332: goto label;
case 2480197: goto label;
case 2052636900: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Comment");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Domain");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Max-Age");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Path");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("Secure");
if v == 0 goto label;
v = 4;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("HttpOnly");
if v == 0 goto label;
v = 5;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
default: goto label;
};
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator: void validateAttribute(java.lang.String,java.lang.String)>(v, v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>("; ");
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(61);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
return v;
}
private static void validateCookieValue(java.lang.String)
{
char v, v, v;
java.lang.IllegalArgumentException v;
byte v;
int v, v, v;
char[] v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = 0;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 1 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
if v != 34 goto label;
v = v - 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 34 goto label;
v = 1;
v = v - 1;
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = v;
label:
if v >= v goto label;
v = v[v];
if v < 33 goto label;
if v == 34 goto label;
if v == 44 goto label;
if v == 59 goto label;
if v == 92 goto label;
if v != 127 goto label;
label:
v = new java.lang.IllegalArgumentException;
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
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[])>("rfc6265CookieProcessor.invalidCharInValue \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
return;
}
private static void validateDomain(java.lang.String)
{
int v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v;
java.lang.IllegalArgumentException v, v, v, v;
char[] v;
java.util.BitSet v;
v := @parameter: java.lang.String;
v = 0;
v = -1;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
label:
v = lengthof v;
if v >= v goto label;
v = v;
v = v[v];
v = <org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.util.BitSet domainValid>;
v = virtualinvoke v.<java.util.BitSet: boolean get(int)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidDomain \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == 46 goto label;
v = (int) -1;
if v != v goto label;
label:
if v == 46 goto label;
if v != 45 goto label;
label:
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidDomain \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v != 45 goto label;
if v != 46 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidDomain \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
if v == 46 goto label;
if v != 45 goto label;
label:
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidDomain \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private static void validatePath(java.lang.String)
{
int v, v;
char[] v;
char v;
java.lang.String v, v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v < 32 goto label;
if v > 126 goto label;
if v != 59 goto label;
label:
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidPath \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
return;
}
private static void validateAttribute(java.lang.String, java.lang.String)
{
char v;
java.lang.IllegalArgumentException v, v;
int v, v;
char[] v;
java.lang.String v, v, v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator: boolean isToken(java.lang.String)>(v);
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidAttributeName \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v < 32 goto label;
if v > 126 goto label;
if v != 59 goto label;
label:
v = new java.lang.IllegalArgumentException;
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[])>("rfc6265CookieProcessor.invalidAttributeValue \u \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
return;
}
public static boolean isToken(java.lang.String)
{
int v, v;
char[] v;
char v;
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderParser: boolean isToken(int)>(v);
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
static void <clinit>()
{
java.lang.ThreadLocal v, v;
java.util.Date v;
java.util.function.Supplier v;
java.lang.Object v;
java.lang.String v;
java.util.BitSet v, v;
v = staticinvoke <org.glassfish.grizzly.http.util.CookieHeaderGenerator$lambda_static_0__143: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <java.lang.ThreadLocal: java.lang.ThreadLocal withInitial(java.util.function.Supplier)>(v);
<org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.lang.ThreadLocal COOKIE_DATE_FORMAT> = v;
v = <org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.lang.ThreadLocal COOKIE_DATE_FORMAT>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(10000L);
v = virtualinvoke v.<java.text.DateFormat: java.lang.String format(java.util.Date)>(v);
<org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.lang.String ANCIENT_DATE> = v;
v = new java.util.BitSet;
specialinvoke v.<java.util.BitSet: void <init>(int)>(128);
<org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.util.BitSet domainValid> = v;
label:
v = <org.glassfish.grizzly.http.util.CookieHeaderGenerator: java.util.BitSet domainValid>;
virtualinvoke v.<java.util.BitSet: void set(int)>(48);
goto label;
}
}