public class org.springframework.web.cors.DefaultCorsProcessor implements org.springframework.web.cors.CorsProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.web.cors.DefaultCorsProcessor
super_class: java.lang.Object
{
private static final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/springframework/web/cors/DefaultCorsProcessor;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.springframework.web.cors.DefaultCorsProcessor.logger:Lorg/apache/commons/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
public boolean processRequest(org.springframework.web.cors.CorsConfiguration, HttpServletRequest, HttpServletResponse);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;LHttpServletRequest;LHttpServletResponse;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tHttpServletRequest cannot be resolved to a type\n\tHttpServletResponse cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
Exceptions:
throws java.io.IOException
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
MethodParameters:
Name Flags
config
request
response
protected void rejectRequest(org.springframework.http.server.ServerHttpResponse);
descriptor: (Lorg/springframework/http/server/ServerHttpResponse;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic org.springframework.http.HttpStatus.FORBIDDEN:Lorg/springframework/http/HttpStatus;
invokeinterface org.springframework.http.server.ServerHttpResponse.setStatusCode:(Lorg/springframework/http/HttpStatus;)V
1: aload 1
invokeinterface org.springframework.http.server.ServerHttpResponse.getBody:()Ljava/io/OutputStream;
ldc "Invalid CORS request"
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.io.OutputStream.write:([B)V
2: aload 1
invokeinterface org.springframework.http.server.ServerHttpResponse.flush:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 4 1 response Lorg/springframework/http/server/ServerHttpResponse;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
response
protected boolean handleInternal(org.springframework.http.server.ServerHttpRequest, org.springframework.http.server.ServerHttpResponse, org.springframework.web.cors.CorsConfiguration, boolean);
descriptor: (Lorg/springframework/http/server/ServerHttpRequest;Lorg/springframework/http/server/ServerHttpResponse;Lorg/springframework/web/cors/CorsConfiguration;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokeinterface org.springframework.http.server.ServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getOrigin:()Ljava/lang/String;
astore 5
start local 5 1: aload 0
aload 3
aload 5
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.checkOrigin:(Lorg/springframework/web/cors/CorsConfiguration;Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 2: aload 2
invokeinterface org.springframework.http.server.ServerHttpResponse.getHeaders:()Lorg/springframework/http/HttpHeaders;
astore 7
start local 7 3: aload 6
ifnonnull 7
4: getstatic org.springframework.web.cors.DefaultCorsProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Reject: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' origin is not allowed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
5: aload 0
aload 2
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.rejectRequest:(Lorg/springframework/http/server/ServerHttpResponse;)V
6: iconst_0
ireturn
7: StackMap locals: java.lang.String java.lang.String org.springframework.http.HttpHeaders
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.getMethodToUse:(Lorg/springframework/http/server/ServerHttpRequest;Z)Lorg/springframework/http/HttpMethod;
astore 8
start local 8 8: aload 0
aload 3
aload 8
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.checkMethods:(Lorg/springframework/web/cors/CorsConfiguration;Lorg/springframework/http/HttpMethod;)Ljava/util/List;
astore 9
start local 9 9: aload 9
ifnonnull 13
10: getstatic org.springframework.web.cors.DefaultCorsProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Reject: HTTP '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' is not allowed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
11: aload 0
aload 2
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.rejectRequest:(Lorg/springframework/http/server/ServerHttpResponse;)V
12: iconst_0
ireturn
13: StackMap locals: org.springframework.http.HttpMethod java.util.List
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.getHeadersToUse:(Lorg/springframework/http/server/ServerHttpRequest;Z)Ljava/util/List;
astore 10
start local 10 14: aload 0
aload 3
aload 10
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.checkHeaders:(Lorg/springframework/web/cors/CorsConfiguration;Ljava/util/List;)Ljava/util/List;
astore 11
start local 11 15: iload 4
ifeq 19
aload 11
ifnonnull 19
16: getstatic org.springframework.web.cors.DefaultCorsProcessor.logger:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Reject: headers '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' are not allowed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
17: aload 0
aload 2
invokevirtual org.springframework.web.cors.DefaultCorsProcessor.rejectRequest:(Lorg/springframework/http/server/ServerHttpResponse;)V
18: iconst_0
ireturn
19: StackMap locals: java.util.List java.util.List
StackMap stack:
aload 7
aload 6
invokevirtual org.springframework.http.HttpHeaders.setAccessControlAllowOrigin:(Ljava/lang/String;)V
20: iload 4
ifeq 22
21: aload 7
aload 9
invokevirtual org.springframework.http.HttpHeaders.setAccessControlAllowMethods:(Ljava/util/List;)V
22: StackMap locals:
StackMap stack:
iload 4
ifeq 24
aload 11
invokeinterface java.util.List.isEmpty:()Z
ifne 24
23: aload 7
aload 11
invokevirtual org.springframework.http.HttpHeaders.setAccessControlAllowHeaders:(Ljava/util/List;)V
24: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.springframework.web.cors.CorsConfiguration.getExposedHeaders:()Ljava/util/List;
invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
ifne 26
25: aload 7
aload 3
invokevirtual org.springframework.web.cors.CorsConfiguration.getExposedHeaders:()Ljava/util/List;
invokevirtual org.springframework.http.HttpHeaders.setAccessControlExposeHeaders:(Ljava/util/List;)V
26: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
aload 3
invokevirtual org.springframework.web.cors.CorsConfiguration.getAllowCredentials:()Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
ifeq 28
27: aload 7
iconst_1
invokevirtual org.springframework.http.HttpHeaders.setAccessControlAllowCredentials:(Z)V
28: StackMap locals:
StackMap stack:
iload 4
ifeq 30
aload 3
invokevirtual org.springframework.web.cors.CorsConfiguration.getMaxAge:()Ljava/lang/Long;
ifnull 30
29: aload 7
aload 3
invokevirtual org.springframework.web.cors.CorsConfiguration.getMaxAge:()Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
invokevirtual org.springframework.http.HttpHeaders.setAccessControlMaxAge:(J)V
30: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.springframework.http.server.ServerHttpResponse.flush:()V
31: iconst_1
ireturn
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 32 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 32 1 request Lorg/springframework/http/server/ServerHttpRequest;
0 32 2 response Lorg/springframework/http/server/ServerHttpResponse;
0 32 3 config Lorg/springframework/web/cors/CorsConfiguration;
0 32 4 preFlightRequest Z
1 32 5 requestOrigin Ljava/lang/String;
2 32 6 allowOrigin Ljava/lang/String;
3 32 7 responseHeaders Lorg/springframework/http/HttpHeaders;
8 32 8 requestMethod Lorg/springframework/http/HttpMethod;
9 32 9 allowMethods Ljava/util/List<Lorg/springframework/http/HttpMethod;>;
14 32 10 requestHeaders Ljava/util/List<Ljava/lang/String;>;
15 32 11 allowHeaders Ljava/util/List<Ljava/lang/String;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
request
response
config
preFlightRequest
protected java.lang.String checkOrigin(org.springframework.web.cors.CorsConfiguration, java.lang.String);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual org.springframework.web.cors.CorsConfiguration.checkOrigin:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 1 1 config Lorg/springframework/web/cors/CorsConfiguration;
0 1 2 requestOrigin Ljava/lang/String;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
config
requestOrigin
protected java.util.List<org.springframework.http.HttpMethod> checkMethods(org.springframework.web.cors.CorsConfiguration, org.springframework.http.HttpMethod);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;Lorg/springframework/http/HttpMethod;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual org.springframework.web.cors.CorsConfiguration.checkHttpMethod:(Lorg/springframework/http/HttpMethod;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 1 1 config Lorg/springframework/web/cors/CorsConfiguration;
0 1 2 requestMethod Lorg/springframework/http/HttpMethod;
Signature: (Lorg/springframework/web/cors/CorsConfiguration;Lorg/springframework/http/HttpMethod;)Ljava/util/List<Lorg/springframework/http/HttpMethod;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
config
requestMethod
private org.springframework.http.HttpMethod getMethodToUse(org.springframework.http.server.ServerHttpRequest, boolean);
descriptor: (Lorg/springframework/http/server/ServerHttpRequest;Z)Lorg/springframework/http/HttpMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 1
aload 1
invokeinterface org.springframework.http.server.ServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
invokevirtual org.springframework.http.HttpHeaders.getAccessControlRequestMethod:()Lorg/springframework/http/HttpMethod;
goto 2
StackMap locals:
StackMap stack:
1: aload 1
invokeinterface org.springframework.http.server.ServerHttpRequest.getMethod:()Lorg/springframework/http/HttpMethod;
StackMap locals:
StackMap stack: org.springframework.http.HttpMethod
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 3 1 request Lorg/springframework/http/server/ServerHttpRequest;
0 3 2 isPreFlight Z
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
request
isPreFlight
protected java.util.List<java.lang.String> checkHeaders(org.springframework.web.cors.CorsConfiguration, java.util.List<java.lang.String>);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;Ljava/util/List;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual org.springframework.web.cors.CorsConfiguration.checkHeaders:(Ljava/util/List;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 1 1 config Lorg/springframework/web/cors/CorsConfiguration;
0 1 2 requestHeaders Ljava/util/List<Ljava/lang/String;>;
Signature: (Lorg/springframework/web/cors/CorsConfiguration;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
config
requestHeaders
private java.util.List<java.lang.String> getHeadersToUse(org.springframework.http.server.ServerHttpRequest, boolean);
descriptor: (Lorg/springframework/http/server/ServerHttpRequest;Z)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface org.springframework.http.server.ServerHttpRequest.getHeaders:()Lorg/springframework/http/HttpHeaders;
astore 3
start local 3 1: iload 2
ifeq 2
aload 3
invokevirtual org.springframework.http.HttpHeaders.getAccessControlRequestHeaders:()Ljava/util/List;
goto 3
StackMap locals: org.springframework.http.HttpHeaders
StackMap stack:
2: new java.util.ArrayList
dup
aload 3
invokevirtual org.springframework.http.HttpHeaders.keySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
StackMap locals:
StackMap stack: java.util.List
3: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/cors/DefaultCorsProcessor;
0 4 1 request Lorg/springframework/http/server/ServerHttpRequest;
0 4 2 isPreFlight Z
1 4 3 headers Lorg/springframework/http/HttpHeaders;
Signature: (Lorg/springframework/http/server/ServerHttpRequest;Z)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
request
isPreFlight
public boolean processRequest(org.springframework.web.cors.CorsConfiguration, HttpServletRequest, HttpServletResponse);
descriptor: (Lorg/springframework/web/cors/CorsConfiguration;LHttpServletRequest;LHttpServletResponse;)Z
flags: (0x1001) ACC_PUBLIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe type DefaultCorsProcessor must implement the inherited abstract method CorsProcessor.processRequest(CorsConfiguration, HttpServletRequest, HttpServletResponse)\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
}
SourceFile: "DefaultCorsProcessor.java"