public final class io.undertow.util.LegacyCookieSupport
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.undertow.util.LegacyCookieSupport
super_class: java.lang.Object
{
static final boolean ALLOW_HTTP_SEPARATORS_IN_V0;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final boolean FWD_SLASH_IS_SEPARATOR;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean COMMA_IS_SEPARATOR;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final char[] V0_SEPARATORS;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean[] V0_SEPARATOR_FLAGS;
descriptor: [Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] HTTP_SEPARATORS;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean[] HTTP_SEPARATOR_FLAGS;
descriptor: [Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: ldc "io.undertow.legacy.cookie.ALLOW_HTTP_SEPARATORS_IN_V0"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
1: ldc "io.undertow.legacy.cookie.FWD_SLASH_IS_SEPARATOR"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic io.undertow.util.LegacyCookieSupport.FWD_SLASH_IS_SEPARATOR:Z
2: ldc "io.undertow.legacy.cookie.COMMA_IS_SEPARATOR"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic io.undertow.util.LegacyCookieSupport.COMMA_IS_SEPARATOR:Z
3: iconst_4
newarray 5
dup
iconst_0
bipush 44
castore
dup
iconst_1
bipush 59
castore
dup
iconst_2
bipush 32
castore
dup
iconst_3
bipush 9
castore
putstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATORS:[C
4: sipush 128
newarray 4
putstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATOR_FLAGS:[Z
5: sipush 128
newarray 4
putstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATOR_FLAGS:[Z
6: getstatic io.undertow.util.LegacyCookieSupport.FWD_SLASH_IS_SEPARATOR:Z
ifeq 11
7: bipush 19
newarray 5
dup
iconst_0
bipush 9
castore
dup
iconst_1
bipush 32
castore
dup
iconst_2
bipush 34
castore
dup
iconst_3
bipush 40
castore
dup
iconst_4
bipush 41
castore
dup
iconst_5
bipush 44
castore
dup
bipush 6
bipush 47
castore
dup
bipush 7
8: bipush 58
castore
dup
bipush 8
bipush 59
castore
dup
bipush 9
bipush 60
castore
dup
bipush 10
bipush 61
castore
dup
bipush 11
bipush 62
castore
dup
bipush 12
bipush 63
castore
dup
bipush 13
bipush 64
castore
dup
bipush 14
bipush 91
castore
dup
bipush 15
bipush 92
castore
dup
bipush 16
bipush 93
castore
dup
bipush 17
bipush 123
castore
dup
bipush 18
bipush 125
castore
9: putstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATORS:[C
10: goto 14
11: StackMap locals:
StackMap stack:
bipush 18
newarray 5
dup
iconst_0
bipush 9
castore
dup
iconst_1
bipush 32
castore
dup
iconst_2
bipush 34
castore
dup
iconst_3
bipush 40
castore
dup
iconst_4
bipush 41
castore
dup
iconst_5
bipush 44
castore
dup
bipush 6
12: bipush 58
castore
dup
bipush 7
bipush 59
castore
dup
bipush 8
bipush 60
castore
dup
bipush 9
bipush 61
castore
dup
bipush 10
bipush 62
castore
dup
bipush 11
bipush 63
castore
dup
bipush 12
bipush 64
castore
dup
bipush 13
bipush 91
castore
dup
bipush 14
bipush 92
castore
dup
bipush 15
bipush 93
castore
dup
bipush 16
bipush 123
castore
dup
bipush 17
bipush 125
castore
13: putstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATORS:[C
14: StackMap locals:
StackMap stack:
iconst_0
istore 0
start local 0 15: goto 19
16: StackMap locals: int
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATOR_FLAGS:[Z
iload 0
iconst_0
bastore
17: getstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATOR_FLAGS:[Z
iload 0
iconst_0
bastore
18: iinc 0 1
StackMap locals:
StackMap stack:
19: iload 0
sipush 128
if_icmplt 16
end local 0 20: getstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATORS:[C
dup
astore 3
arraylength
istore 2
iconst_0
istore 1
goto 24
StackMap locals: top int int char[]
StackMap stack:
21: aload 3
iload 1
caload
istore 0
start local 0 22: getstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATOR_FLAGS:[Z
iload 0
iconst_1
bastore
end local 0 23: iinc 1 1
StackMap locals:
StackMap stack:
24: iload 1
iload 2
if_icmplt 21
25: getstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATORS:[C
dup
astore 3
arraylength
istore 2
iconst_0
istore 1
goto 29
StackMap locals:
StackMap stack:
26: aload 3
iload 1
caload
istore 0
start local 0 27: getstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATOR_FLAGS:[Z
iload 0
iconst_1
bastore
end local 0 28: iinc 1 1
StackMap locals:
StackMap stack:
29: iload 1
iload 2
if_icmplt 26
30: return
LocalVariableTable:
Start End Slot Name Signature
15 20 0 i I
22 23 0 V0_SEPARATOR C
27 28 0 HTTP_SEPARATOR C
private static boolean isV0Separator(char);
descriptor: (C)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 32
if_icmplt 1
iload 0
bipush 127
if_icmplt 3
1: StackMap locals:
StackMap stack:
iload 0
bipush 9
if_icmpeq 3
2: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 0
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokeinterface io.undertow.UndertowMessages.invalidControlCharacter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
3: StackMap locals:
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.V0_SEPARATOR_FLAGS:[Z
iload 0
baload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c final
private static boolean isV0Token(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 2: aload 0
invokevirtual java.lang.String.length:()I
istore 2
start local 2 3: aload 0
invokestatic io.undertow.util.LegacyCookieSupport.alreadyQuoted:(Ljava/lang/String;)Z
ifeq 11
4: iinc 1 1
5: iinc 2 -1
6: goto 11
7: StackMap locals: int int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 8: iload 3
invokestatic io.undertow.util.LegacyCookieSupport.isV0Separator:(C)Z
ifeq 10
9: iconst_1
ireturn
end local 3 10: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
11: iload 1
iload 2
if_icmplt 7
12: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 value Ljava/lang/String;
2 13 1 i I
3 13 2 len I
8 10 3 c C
MethodParameters:
Name Flags
value
static boolean isHttpSeparator(char);
descriptor: (C)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 32
if_icmplt 1
iload 0
bipush 127
if_icmplt 3
1: StackMap locals:
StackMap stack:
iload 0
bipush 9
if_icmpeq 3
2: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 0
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokeinterface io.undertow.UndertowMessages.invalidControlCharacter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
athrow
3: StackMap locals:
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.HTTP_SEPARATOR_FLAGS:[Z
iload 0
baload
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c final
private static boolean isHttpToken(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 2: aload 0
invokevirtual java.lang.String.length:()I
istore 2
start local 2 3: aload 0
invokestatic io.undertow.util.LegacyCookieSupport.alreadyQuoted:(Ljava/lang/String;)Z
ifeq 11
4: iinc 1 1
5: iinc 2 -1
6: goto 11
7: StackMap locals: int int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 8: iload 3
invokestatic io.undertow.util.LegacyCookieSupport.isHttpSeparator:(C)Z
ifeq 10
9: iconst_1
ireturn
end local 3 10: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
11: iload 1
iload 2
if_icmplt 7
12: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 value Ljava/lang/String;
2 13 1 i I
3 13 2 len I
8 10 3 c C
MethodParameters:
Name Flags
value
private static boolean alreadyQuoted(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.String.length:()I
iconst_2
if_icmpge 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 34
if_icmpne 3
aload 0
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 34
if_icmpne 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value Ljava/lang/String;
MethodParameters:
Name Flags
value
public static void maybeQuote(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.length:()I
ifne 3
1: StackMap locals:
StackMap stack:
aload 0
ldc "\"\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: goto 15
StackMap locals:
StackMap stack:
3: aload 1
invokestatic io.undertow.util.LegacyCookieSupport.alreadyQuoted:(Ljava/lang/String;)Z
ifeq 8
4: aload 0
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: aload 0
aload 1
iconst_1
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokestatic io.undertow.util.LegacyCookieSupport.escapeDoubleQuotes:(Ljava/lang/String;II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: goto 15
StackMap locals:
StackMap stack:
8: aload 1
invokestatic io.undertow.util.LegacyCookieSupport.isHttpToken:(Ljava/lang/String;)Z
ifeq 9
getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifeq 10
9: StackMap locals:
StackMap stack:
aload 1
invokestatic io.undertow.util.LegacyCookieSupport.isV0Token:(Ljava/lang/String;)Z
ifeq 14
getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifeq 14
10: StackMap locals:
StackMap stack:
aload 0
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: aload 0
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
invokestatic io.undertow.util.LegacyCookieSupport.escapeDoubleQuotes:(Ljava/lang/String;II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 0
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 buf Ljava/lang/StringBuilder;
0 16 1 value Ljava/lang/String;
MethodParameters:
Name Flags
buf
value
private static java.lang.String escapeDoubleQuotes(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.String.length:()I
ifeq 1
aload 0
bipush 34
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 2
1: StackMap locals:
StackMap stack:
aload 0
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 3: iload 1
istore 4
start local 4 4: goto 15
5: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: iload 5
bipush 92
if_icmpne 11
7: aload 3
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: iinc 4 1
iload 4
iload 2
if_icmplt 9
getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.invalidEscapeCharacter:()Ljava/lang/IllegalArgumentException;
athrow
9: StackMap locals: int
StackMap stack:
aload 3
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
10: goto 14
StackMap locals:
StackMap stack:
11: iload 5
bipush 34
if_icmpne 13
12: aload 3
bipush 92
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
goto 14
13: StackMap locals:
StackMap stack:
aload 3
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 14: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
15: iload 4
iload 2
if_icmplt 5
end local 4 16: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 s Ljava/lang/String;
0 17 1 beginIndex I
0 17 2 endIndex I
3 17 3 b Ljava/lang/StringBuilder;
4 16 4 i I
6 14 5 c C
MethodParameters:
Name Flags
s
beginIndex
endIndex
public static int adjustedCookieVersion(io.undertow.server.handlers.Cookie);
descriptor: (Lio/undertow/server/handlers/Cookie;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=6, args_size=1
start local 0 0: aload 0
invokeinterface io.undertow.server.handlers.Cookie.getVersion:()I
istore 1
start local 1 1: aload 0
invokeinterface io.undertow.server.handlers.Cookie.getValue:()Ljava/lang/String;
astore 2
start local 2 2: aload 0
invokeinterface io.undertow.server.handlers.Cookie.getPath:()Ljava/lang/String;
astore 3
start local 3 3: aload 0
invokeinterface io.undertow.server.handlers.Cookie.getDomain:()Ljava/lang/String;
astore 4
start local 4 4: aload 0
invokeinterface io.undertow.server.handlers.Cookie.getComment:()Ljava/lang/String;
astore 5
start local 5 5: iload 1
ifne 9
6: getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifne 7
aload 2
invokestatic io.undertow.util.LegacyCookieSupport.isHttpToken:(Ljava/lang/String;)Z
ifne 8
7: StackMap locals: io.undertow.server.handlers.Cookie int java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifeq 9
aload 2
invokestatic io.undertow.util.LegacyCookieSupport.isV0Token:(Ljava/lang/String;)Z
ifeq 9
8: StackMap locals:
StackMap stack:
iconst_1
istore 1
9: StackMap locals:
StackMap stack:
iload 1
ifne 11
aload 5
ifnull 11
10: iconst_1
istore 1
11: StackMap locals:
StackMap stack:
iload 1
ifne 15
12: getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifne 13
aload 3
invokestatic io.undertow.util.LegacyCookieSupport.isHttpToken:(Ljava/lang/String;)Z
ifne 14
13: StackMap locals:
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifeq 15
aload 3
invokestatic io.undertow.util.LegacyCookieSupport.isV0Token:(Ljava/lang/String;)Z
ifeq 15
14: StackMap locals:
StackMap stack:
iconst_1
istore 1
15: StackMap locals:
StackMap stack:
iload 1
ifne 19
16: getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifne 17
aload 4
invokestatic io.undertow.util.LegacyCookieSupport.isHttpToken:(Ljava/lang/String;)Z
ifne 18
17: StackMap locals:
StackMap stack:
getstatic io.undertow.util.LegacyCookieSupport.ALLOW_HTTP_SEPARATORS_IN_V0:Z
ifeq 19
aload 4
invokestatic io.undertow.util.LegacyCookieSupport.isV0Token:(Ljava/lang/String;)Z
ifeq 19
18: StackMap locals:
StackMap stack:
iconst_1
istore 1
19: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 cookie Lio/undertow/server/handlers/Cookie;
1 20 1 version I
2 20 2 value Ljava/lang/String;
3 20 3 path Ljava/lang/String;
4 20 4 domain Ljava/lang/String;
5 20 5 comment Ljava/lang/String;
MethodParameters:
Name Flags
cookie
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/util/LegacyCookieSupport;
}
SourceFile: "LegacyCookieSupport.java"