public class org.apache.catalina.valves.RemoteIpValve extends org.apache.catalina.valves.ValveBase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.valves.RemoteIpValve
super_class: org.apache.catalina.valves.ValveBase
{
private static final java.util.regex.Pattern commaSeparatedValuesPattern;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean changeLocalName;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int httpServerPort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int httpsServerPort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean changeLocalPort;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.regex.Pattern internalProxies;
descriptor: Ljava/util/regex/Pattern;
flags: (0x0002) ACC_PRIVATE
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean requestAttributesEnabled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.regex.Pattern trustedProxies;
descriptor: Ljava/util/regex/Pattern;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "\\s*,\\s*"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.apache.catalina.valves.RemoteIpValve.commaSeparatedValuesPattern:Ljava/util/regex/Pattern;
1: ldc Lorg/apache/catalina/valves/RemoteIpValve;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
protected static java.lang.String[] commaDelimitedListToStringArray(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
invokevirtual java.lang.String.length:()I
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
anewarray java.lang.String
goto 4
StackMap locals:
StackMap stack:
2: getstatic org.apache.catalina.valves.RemoteIpValve.commaSeparatedValuesPattern:Ljava/util/regex/Pattern;
3: aload 0
invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
4: StackMap locals:
StackMap stack: java.lang.String[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 commaDelimitedStrings Ljava/lang/String;
MethodParameters:
Name Flags
commaDelimitedStrings
protected static java.lang.String listToCommaDelimitedString(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: ldc ""
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 3: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 4: goto 10
5: StackMap locals: java.lang.StringBuilder java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 3
start local 3 6: aload 3
ifnull 10
7: aload 1
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
8: aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 10
9: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 10: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 11: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 stringList Ljava/util/List<Ljava/lang/String;>;
3 12 1 result Ljava/lang/StringBuilder;
4 11 2 it Ljava/util/Iterator<Ljava/lang/String;>;
6 10 3 element Ljava/lang/Object;
Signature: (Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
stringList
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokespecial org.apache.catalina.valves.ValveBase.<init>:(Z)V
1: aload 0
aconst_null
putfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
2: aload 0
iconst_0
putfield org.apache.catalina.valves.RemoteIpValve.changeLocalName:Z
3: aload 0
bipush 80
putfield org.apache.catalina.valves.RemoteIpValve.httpServerPort:I
4: aload 0
sipush 443
putfield org.apache.catalina.valves.RemoteIpValve.httpsServerPort:I
5: aload 0
aconst_null
putfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
6: aload 0
iconst_0
putfield org.apache.catalina.valves.RemoteIpValve.changeLocalPort:Z
7: aload 0
8: ldc "10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|192\\.168\\.\\d{1,3}\\.\\d{1,3}|169\\.254\\.\\d{1,3}\\.\\d{1,3}|127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3}|0:0:0:0:0:0:0:1|::1"
9: invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
10: aload 0
ldc "X-Forwarded-Proto"
putfield org.apache.catalina.valves.RemoteIpValve.protocolHeader:Ljava/lang/String;
11: aload 0
ldc "https"
putfield org.apache.catalina.valves.RemoteIpValve.protocolHeaderHttpsValue:Ljava/lang/String;
12: aload 0
ldc "X-Forwarded-By"
putfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
13: aload 0
ldc "X-Forwarded-For"
putfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
14: aload 0
iconst_1
putfield org.apache.catalina.valves.RemoteIpValve.requestAttributesEnabled:Z
15: aload 0
aconst_null
putfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 hostHeader Ljava/lang/String;
MethodParameters:
Name Flags
hostHeader
public boolean isChangeLocalName();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.changeLocalName:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public void setChangeLocalName(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.RemoteIpValve.changeLocalName:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 changeLocalName Z
MethodParameters:
Name Flags
changeLocalName
public int getHttpServerPort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.httpServerPort:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public int getHttpsServerPort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.httpsServerPort:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 portHeader Ljava/lang/String;
MethodParameters:
Name Flags
portHeader
public boolean isChangeLocalPort();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.changeLocalPort:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public void setChangeLocalPort(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.RemoteIpValve.changeLocalPort:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 changeLocalPort Z
MethodParameters:
Name Flags
changeLocalPort
public java.lang.String getInternalProxies();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
invokevirtual java.util.regex.Pattern.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeader:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeaderHttpsValue:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String ();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public boolean getRequestAttributesEnabled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.requestAttributesEnabled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public java.lang.String getTrustedProxies();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
invokevirtual java.util.regex.Pattern.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/valves/RemoteIpValve;
public void invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response);
descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=22, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
astore 3
start local 3 1: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteHost:()Ljava/lang/String;
astore 4
start local 4 2: aload 1
invokevirtual org.apache.catalina.connector.Request.getScheme:()Ljava/lang/String;
astore 5
start local 5 3: aload 1
invokevirtual org.apache.catalina.connector.Request.isSecure:()Z
istore 6
start local 6 4: aload 1
invokevirtual org.apache.catalina.connector.Request.getServerName:()Ljava/lang/String;
astore 7
start local 7 5: aload 1
invokevirtual org.apache.catalina.connector.Request.getLocalName:()Ljava/lang/String;
astore 8
start local 8 6: aload 1
invokevirtual org.apache.catalina.connector.Request.getServerPort:()I
istore 9
start local 9 7: aload 1
invokevirtual org.apache.catalina.connector.Request.getLocalPort:()I
istore 10
start local 10 8: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 11
start local 11 9: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 12
start local 12 10: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
ifnull 13
11: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
aload 3
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 13
12: iconst_1
goto 14
StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String
StackMap stack:
13: iconst_0
StackMap locals:
StackMap stack: int
14: istore 13
start local 13 15: iload 13
ifne 17
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
ifnull 105
16: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
aload 3
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 105
17: StackMap locals: int
StackMap stack:
aconst_null
astore 14
start local 14 18: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 15
start local 15 19: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 16
start local 16 20: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeaders:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 17
start local 17 21: goto 25
22: StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int java.lang.String java.util.LinkedList java.lang.StringBuilder java.util.Enumeration
StackMap stack:
aload 16
invokevirtual java.lang.StringBuilder.length:()I
ifle 24
23: aload 16
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: StackMap locals:
StackMap stack:
aload 16
aload 17
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: StackMap locals:
StackMap stack:
aload 17
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 22
end local 17 26: aload 16
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.apache.catalina.valves.RemoteIpValve.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 17
start local 17 27: iload 13
ifne 29
28: aload 15
aload 3
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
29: StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int java.lang.String java.util.LinkedList java.lang.StringBuilder java.lang.String[]
StackMap stack:
aload 17
arraylength
iconst_1
isub
istore 18
start local 18 30: goto 41
31: StackMap locals: int
StackMap stack:
aload 17
iload 18
aaload
astore 19
start local 19 32: aload 19
astore 14
33: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
ifnull 34
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
aload 19
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 40
34: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
ifnull 38
35: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
aload 19
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 38
36: aload 15
aload 19
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
37: goto 40
38: StackMap locals:
StackMap stack:
iinc 18 -1
39: goto 42
end local 19 40: StackMap locals:
StackMap stack:
iinc 18 -1
StackMap locals:
StackMap stack:
41: iload 18
ifge 31
42: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 19
start local 19 43: goto 47
44: StackMap locals: java.util.LinkedList
StackMap stack:
aload 17
iload 18
aaload
astore 20
start local 20 45: aload 19
aload 20
invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
end local 20 46: iinc 18 -1
StackMap locals:
StackMap stack:
47: iload 18
ifge 44
48: aload 14
ifnull 69
49: aload 1
aload 14
invokevirtual org.apache.catalina.connector.Request.setRemoteAddr:(Ljava/lang/String;)V
50: aload 1
invokevirtual org.apache.catalina.connector.Request.getConnector:()Lorg/apache/catalina/connector/Connector;
invokevirtual org.apache.catalina.connector.Connector.getEnableLookups:()Z
ifeq 58
51: aload 14
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
astore 20
start local 20 52: aload 1
aload 20
invokevirtual java.net.InetAddress.getCanonicalHostName:()Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.setRemoteHost:(Ljava/lang/String;)V
end local 20 53: goto 59
StackMap locals:
StackMap stack: java.net.UnknownHostException
54: astore 20
start local 20 55: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.valves.RemoteIpValve.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "remoteIpValve.invalidRemoteAddress"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 14
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 20
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
56: aload 1
aload 14
invokevirtual org.apache.catalina.connector.Request.setRemoteHost:(Ljava/lang/String;)V
end local 20 57: goto 59
58: StackMap locals:
StackMap stack:
aload 1
aload 14
invokevirtual org.apache.catalina.connector.Request.setRemoteHost:(Ljava/lang/String;)V
59: StackMap locals:
StackMap stack:
aload 15
invokevirtual java.util.LinkedList.size:()I
ifne 62
60: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
61: goto 64
62: StackMap locals:
StackMap stack:
aload 15
invokestatic org.apache.catalina.valves.RemoteIpValve.listToCommaDelimitedString:(Ljava/util/List;)Ljava/lang/String;
astore 20
start local 20 63: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 20
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 20 64: StackMap locals:
StackMap stack:
aload 19
invokevirtual java.util.LinkedList.size:()I
ifne 67
65: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
66: goto 69
67: StackMap locals:
StackMap stack:
aload 19
invokestatic org.apache.catalina.valves.RemoteIpValve.listToCommaDelimitedString:(Ljava/util/List;)Ljava/lang/String;
astore 20
start local 20 68: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 20
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 20 69: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeader:Ljava/lang/String;
ifnull 80
70: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 20
start local 20 71: aload 20
ifnull 80
72: aload 0
aload 20
invokevirtual org.apache.catalina.valves.RemoteIpValve.isForwardedProtoHeaderValueSecure:(Ljava/lang/String;)Z
ifeq 77
73: aload 1
iconst_1
invokevirtual org.apache.catalina.connector.Request.setSecure:(Z)V
74: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.scheme:()Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "https"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
75: aload 0
aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.httpsServerPort:I
invokevirtual org.apache.catalina.valves.RemoteIpValve.setPorts:(Lorg/apache/catalina/connector/Request;I)V
76: goto 80
77: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_0
invokevirtual org.apache.catalina.connector.Request.setSecure:(Z)V
78: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.scheme:()Lorg/apache/tomcat/util/buf/MessageBytes;
ldc "http"
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
79: aload 0
aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.httpServerPort:I
invokevirtual org.apache.catalina.valves.RemoteIpValve.setPorts:(Lorg/apache/catalina/connector/Request;I)V
end local 20 80: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
ifnull 93
81: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 20
start local 20 82: aload 20
ifnull 93
83: aload 20
invokestatic org.apache.tomcat.util.http.parser.Host.parse:(Ljava/lang/String;)I
istore 21
start local 21 84: iload 21
iconst_m1
if_icmple 87
85: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.valves.RemoteIpValve.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "remoteIpValve.invalidHostWithPort"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 20
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
86: aload 20
iconst_0
iload 21
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 20
87: StackMap locals: java.lang.String int
StackMap stack:
aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.serverName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 20
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
88: aload 0
invokevirtual org.apache.catalina.valves.RemoteIpValve.isChangeLocalName:()Z
ifeq 93
89: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 20
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 21 90: goto 93
StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int java.lang.String java.util.LinkedList java.lang.StringBuilder java.lang.String[] int java.util.LinkedList java.lang.String
StackMap stack: java.lang.IllegalArgumentException
91: pop
92: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.valves.RemoteIpValve.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "remoteIpValve.invalidHostHeader"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 20
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.hostHeader:Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 20 93: StackMap locals:
StackMap stack:
aload 1
ldc "org.apache.tomcat.request.forwarded"
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
94: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 109
95: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Incoming request "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with originalRemoteAddr ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
96: ldc "], originalRemoteHost=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "], originalSecure=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
97: ldc "], originalScheme=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "], originalServerName=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
98: ldc "], originalServerPort=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
99: ldc "] will be seen as newRemoteAddr=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
100: ldc "], newRemoteHost=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteHost:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "], newSecure=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.isSecure:()Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
101: ldc "], newScheme=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.getScheme:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "], newServerName=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.getServerName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
102: ldc "], newServerPort=["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.apache.catalina.connector.Request.getServerPort:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
103: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 104: goto 109
105: StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int
StackMap stack:
getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 109
106: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Skip RemoteIpValve for request "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.apache.catalina.connector.Request.getRequestURI:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with originalRemoteAddr '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
107: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
108: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
109: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.requestAttributesEnabled:Z
ifeq 128
110: aload 1
ldc "org.apache.catalina.AccessLog.RemoteAddr"
111: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
112: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
113: aload 1
ldc "org.apache.tomcat.remoteAddr"
114: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteAddr:()Ljava/lang/String;
115: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
116: aload 1
ldc "org.apache.catalina.AccessLog.RemoteHost"
117: aload 1
invokevirtual org.apache.catalina.connector.Request.getRemoteHost:()Ljava/lang/String;
118: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
119: aload 1
ldc "org.apache.catalina.AccessLog.Protocol"
120: aload 1
invokevirtual org.apache.catalina.connector.Request.getProtocol:()Ljava/lang/String;
121: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
122: aload 1
ldc "org.apache.catalina.AccessLog.ServerName"
123: aload 1
invokevirtual org.apache.catalina.connector.Request.getServerName:()Ljava/lang/String;
124: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
125: aload 1
ldc "org.apache.catalina.AccessLog.ServerPort"
126: aload 1
invokevirtual org.apache.catalina.connector.Request.getServerPort:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
127: invokevirtual org.apache.catalina.connector.Request.setAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
128: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.valves.RemoteIpValve.getNext:()Lorg/apache/catalina/Valve;
aload 1
aload 2
invokeinterface org.apache.catalina.Valve.invoke:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V
129: goto 149
StackMap locals:
StackMap stack: java.lang.Throwable
130: astore 14
131: aload 1
aload 3
invokevirtual org.apache.catalina.connector.Request.setRemoteAddr:(Ljava/lang/String;)V
132: aload 1
aload 4
invokevirtual org.apache.catalina.connector.Request.setRemoteHost:(Ljava/lang/String;)V
133: aload 1
iload 6
invokevirtual org.apache.catalina.connector.Request.setSecure:(Z)V
134: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.scheme:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 5
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
135: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.serverName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 7
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
136: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 8
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
137: aload 1
iload 9
invokevirtual org.apache.catalina.connector.Request.setServerPort:(I)V
138: aload 1
iload 10
invokevirtual org.apache.catalina.connector.Request.setLocalPort:(I)V
139: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
astore 15
start local 15 140: aload 11
ifnull 141
aload 11
invokevirtual java.lang.String.length:()I
ifne 143
141: StackMap locals: java.lang.Throwable org.apache.tomcat.util.http.MimeHeaders
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
142: goto 144
143: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 11
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
144: StackMap locals:
StackMap stack:
aload 12
ifnull 145
aload 12
invokevirtual java.lang.String.length:()I
ifne 147
145: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
146: goto 148
147: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 12
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 15 148: StackMap locals:
StackMap stack:
aload 14
athrow
149: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual org.apache.catalina.connector.Request.setRemoteAddr:(Ljava/lang/String;)V
150: aload 1
aload 4
invokevirtual org.apache.catalina.connector.Request.setRemoteHost:(Ljava/lang/String;)V
151: aload 1
iload 6
invokevirtual org.apache.catalina.connector.Request.setSecure:(Z)V
152: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.scheme:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 5
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
153: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.serverName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 7
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
154: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.localName:()Lorg/apache/tomcat/util/buf/MessageBytes;
aload 8
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
155: aload 1
iload 9
invokevirtual org.apache.catalina.connector.Request.setServerPort:(I)V
156: aload 1
iload 10
invokevirtual org.apache.catalina.connector.Request.setLocalPort:(I)V
157: aload 1
invokevirtual org.apache.catalina.connector.Request.getCoyoteRequest:()Lorg/apache/coyote/Request;
invokevirtual org.apache.coyote.Request.getMimeHeaders:()Lorg/apache/tomcat/util/http/MimeHeaders;
astore 15
start local 15 158: aload 11
ifnull 159
aload 11
invokevirtual java.lang.String.length:()I
ifne 161
159: StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int top org.apache.tomcat.util.http.MimeHeaders
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
160: goto 162
161: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 11
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
162: StackMap locals:
StackMap stack:
aload 12
ifnull 163
aload 12
invokevirtual java.lang.String.length:()I
ifne 165
163: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.removeHeader:(Ljava/lang/String;)V
164: goto 166
165: StackMap locals:
StackMap stack:
aload 15
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
invokevirtual org.apache.tomcat.util.http.MimeHeaders.setValue:(Ljava/lang/String;)Lorg/apache/tomcat/util/buf/MessageBytes;
aload 12
invokevirtual org.apache.tomcat.util.buf.MessageBytes.setString:(Ljava/lang/String;)V
end local 15 166: StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request org.apache.catalina.connector.Response java.lang.String java.lang.String java.lang.String int java.lang.String java.lang.String int int java.lang.String java.lang.String int
StackMap stack:
return
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 167 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 167 1 request Lorg/apache/catalina/connector/Request;
0 167 2 response Lorg/apache/catalina/connector/Response;
1 167 3 originalRemoteAddr Ljava/lang/String;
2 167 4 originalRemoteHost Ljava/lang/String;
3 167 5 originalScheme Ljava/lang/String;
4 167 6 originalSecure Z
5 167 7 originalServerName Ljava/lang/String;
6 167 8 originalLocalName Ljava/lang/String;
7 167 9 originalServerPort I
8 167 10 originalLocalPort I
9 167 11 originalProxiesHeader Ljava/lang/String;
10 167 12 originalRemoteIpHeader Ljava/lang/String;
15 167 13 isInternal Z
18 104 14 remoteIp Ljava/lang/String;
19 104 15 proxiesHeaderValue Ljava/util/LinkedList<Ljava/lang/String;>;
20 104 16 concatRemoteIpHeaderValue Ljava/lang/StringBuilder;
21 26 17 e Ljava/util/Enumeration<Ljava/lang/String;>;
27 104 17 remoteIpHeaderValue [Ljava/lang/String;
30 104 18 idx I
32 40 19 currentRemoteIp Ljava/lang/String;
43 104 19 newRemoteIpHeaderValue Ljava/util/LinkedList<Ljava/lang/String;>;
45 46 20 currentRemoteIp Ljava/lang/String;
52 53 20 inetAddress Ljava/net/InetAddress;
55 57 20 e Ljava/net/UnknownHostException;
63 64 20 commaDelimitedListOfProxies Ljava/lang/String;
68 69 20 commaDelimitedRemoteIpHeaderValue Ljava/lang/String;
71 80 20 protocolHeaderValue Ljava/lang/String;
82 93 20 hostHeaderValue Ljava/lang/String;
84 90 21 portIndex I
140 148 15 headers Lorg/apache/tomcat/util/http/MimeHeaders;
158 166 15 headers Lorg/apache/tomcat/util/http/MimeHeaders;
Exception table:
from to target type
51 53 54 Class java.net.UnknownHostException
83 90 91 Class java.lang.IllegalArgumentException
128 130 130 any
Exceptions:
throws java.io.IOException, jakarta.servlet.ServletException
MethodParameters:
Name Flags
request
response
private boolean (java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ldc ","
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 2
1: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeaderHttpsValue:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.apache.catalina.valves.RemoteIpValve.commaDelimitedListToStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 3: aload 2
arraylength
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.lang.String[]
StackMap stack:
aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 10
StackMap locals: org.apache.catalina.valves.RemoteIpValve java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
6: aload 6
iload 4
aaload
astore 3
start local 3 7: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.protocolHeaderHttpsValue:Ljava/lang/String;
aload 3
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 9
8: iconst_0
ireturn
end local 3 9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
iload 5
if_icmplt 6
11: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 12 1 protocolHeaderValue Ljava/lang/String;
3 12 2 forwardedProtocols [Ljava/lang/String;
7 9 3 forwardedProtocol Ljava/lang/String;
MethodParameters:
Name Flags
protocolHeaderValue
private void setPorts(org.apache.catalina.connector.Request, int);
descriptor: (Lorg/apache/catalina/connector/Request;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 2
istore 3
start local 3 1: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
ifnull 14
2: aload 1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
invokevirtual org.apache.catalina.connector.Request.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 3: aload 4
ifnull 14
4: aload 4
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
5: goto 14
StackMap locals: org.apache.catalina.valves.RemoteIpValve org.apache.catalina.connector.Request int int java.lang.String
StackMap stack: java.lang.NumberFormatException
6: astore 5
start local 5 7: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 14
8: getstatic org.apache.catalina.valves.RemoteIpValve.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.valves.RemoteIpValve.sm:Lorg/apache/tomcat/util/res/StringManager;
9: ldc "remoteIpValve.invalidPortHeader"
iconst_2
anewarray java.lang.Object
dup
iconst_0
10: aload 4
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.valves.RemoteIpValve.portHeader:Ljava/lang/String;
aastore
11: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
12: aload 5
13: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 end local 4 14: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual org.apache.catalina.connector.Request.setServerPort:(I)V
15: aload 0
getfield org.apache.catalina.valves.RemoteIpValve.changeLocalPort:Z
ifeq 17
16: aload 1
iload 3
invokevirtual org.apache.catalina.connector.Request.setLocalPort:(I)V
17: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 18 1 request Lorg/apache/catalina/connector/Request;
0 18 2 defaultPort I
1 18 3 port I
3 14 4 portHeaderValue Ljava/lang/String;
7 14 5 nfe Ljava/lang/NumberFormatException;
Exception table:
from to target type
4 5 6 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
request
defaultPort
public void setHttpServerPort(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.RemoteIpValve.httpServerPort:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 httpServerPort I
MethodParameters:
Name Flags
httpServerPort
public void setHttpsServerPort(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.RemoteIpValve.httpsServerPort:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 httpsServerPort I
MethodParameters:
Name Flags
httpsServerPort
public void setInternalProxies(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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
aconst_null
putfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putfield org.apache.catalina.valves.RemoteIpValve.internalProxies:Ljava/util/regex/Pattern;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 5 1 internalProxies Ljava/lang/String;
MethodParameters:
Name Flags
internalProxies
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.protocolHeader:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 protocolHeader Ljava/lang/String;
MethodParameters:
Name Flags
protocolHeader
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.protocolHeaderHttpsValue:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 protocolHeaderHttpsValue Ljava/lang/String;
MethodParameters:
Name Flags
protocolHeaderHttpsValue
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.proxiesHeader:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 proxiesHeader Ljava/lang/String;
MethodParameters:
Name Flags
proxiesHeader
public void (java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.RemoteIpValve.remoteIpHeader:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 remoteIpHeader Ljava/lang/String;
MethodParameters:
Name Flags
remoteIpHeader
public void setRequestAttributesEnabled(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.RemoteIpValve.requestAttributesEnabled:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 2 1 requestAttributesEnabled Z
MethodParameters:
Name Flags
requestAttributesEnabled
public void setTrustedProxies(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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
aconst_null
putfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putfield org.apache.catalina.valves.RemoteIpValve.trustedProxies:Ljava/util/regex/Pattern;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/valves/RemoteIpValve;
0 5 1 trustedProxies Ljava/lang/String;
MethodParameters:
Name Flags
trustedProxies
}
SourceFile: "RemoteIpValve.java"