public class io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl extends io.vertx.ext.web.handler.impl.AuthorizationAuthHandler implements io.vertx.ext.web.handler.OAuth2AuthHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl
super_class: io.vertx.ext.web.handler.impl.AuthorizationAuthHandler
{
private static final io.vertx.core.logging.Logger log;
descriptor: Lio/vertx/core/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String host;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String callbackPath;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> scopes;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private io.vertx.ext.web.Route callback;
descriptor: Lio/vertx/ext/web/Route;
flags: (0x0002) ACC_PRIVATE
private io.vertx.core.json.JsonObject extraParams;
descriptor: Lio/vertx/core/json/JsonObject;
flags: (0x0002) ACC_PRIVATE
private boolean bearerOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
putstatic io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.log:Lio/vertx/core/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
private static io.vertx.ext.auth.AuthProvider verifyProvider(io.vertx.ext.auth.AuthProvider);
descriptor: (Lio/vertx/ext/auth/AuthProvider;)Lio/vertx/ext/auth/AuthProvider;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
instanceof io.vertx.ext.auth.oauth2.OAuth2Auth
ifeq 3
1: aload 0
checkcast io.vertx.ext.auth.oauth2.OAuth2Auth
invokeinterface io.vertx.ext.auth.oauth2.OAuth2Auth.getFlowType:()Lio/vertx/ext/auth/oauth2/OAuth2FlowType;
getstatic io.vertx.ext.auth.oauth2.OAuth2FlowType.AUTH_CODE:Lio/vertx/ext/auth/oauth2/OAuth2FlowType;
if_acmpeq 3
2: new java.lang.IllegalArgumentException
dup
ldc "OAuth2Auth + Bearer Auth requires OAuth2 AUTH_CODE flow"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 provider Lio/vertx/ext/auth/AuthProvider;
MethodParameters:
Name Flags
provider
public void <init>(io.vertx.ext.auth.oauth2.OAuth2Auth, java.lang.String);
descriptor: (Lio/vertx/ext/auth/oauth2/OAuth2Auth;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.verifyProvider:(Lio/vertx/ext/auth/AuthProvider;)Lio/vertx/ext/auth/AuthProvider;
getstatic io.vertx.ext.web.handler.impl.AuthorizationAuthHandler$Type.BEARER:Lio/vertx/ext/web/handler/impl/AuthorizationAuthHandler$Type;
invokespecial io.vertx.ext.web.handler.impl.AuthorizationAuthHandler.<init>:(Lio/vertx/ext/auth/AuthProvider;Lio/vertx/ext/web/handler/impl/AuthorizationAuthHandler$Type;)V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.scopes:Ljava/util/Set;
2: aload 0
iconst_1
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.bearerOnly:Z
3: aload 2
ifnull 10
4: new java.net.URL
dup
aload 2
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 3
start local 3 5: aload 0
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "://"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.net.URL.getPort:()I
iconst_m1
if_icmpne 6
ldc ""
goto 7
StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.auth.oauth2.OAuth2Auth java.lang.String java.net.URL
StackMap stack: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl java.lang.StringBuilder
6: new java.lang.StringBuilder
dup
ldc ":"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.net.URL.getPort:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.auth.oauth2.OAuth2Auth java.lang.String java.net.URL
StackMap stack: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl java.lang.StringBuilder java.lang.String
7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
8: aload 0
aload 3
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callbackPath:Ljava/lang/String;
end local 3 9: goto 15
10: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
11: aload 0
aconst_null
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callbackPath:Ljava/lang/String;
12: goto 15
StackMap locals:
StackMap stack: java.net.MalformedURLException
13: astore 3
start local 3 14: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 16 1 authProvider Lio/vertx/ext/auth/oauth2/OAuth2Auth;
0 16 2 callbackURL Ljava/lang/String;
5 9 3 url Ljava/net/URL;
14 15 3 e Ljava/net/MalformedURLException;
Exception table:
from to target type
3 12 13 Class java.net.MalformedURLException
MethodParameters:
Name Flags
authProvider
callbackURL
public io.vertx.ext.web.handler.AuthHandler addAuthority(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/AuthHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.scopes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 2 1 authority Ljava/lang/String;
MethodParameters:
Name Flags
authority
public io.vertx.ext.web.handler.AuthHandler addAuthorities(java.util.Set<java.lang.String>);
descriptor: (Ljava/util/Set;)Lio/vertx/ext/web/handler/AuthHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.scopes:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 2 1 authorities Ljava/util/Set<Ljava/lang/String;>;
Signature: (Ljava/util/Set<Ljava/lang/String;>;)Lio/vertx/ext/web/handler/AuthHandler;
MethodParameters:
Name Flags
authorities
public void parseCredentials(io.vertx.ext.web.RoutingContext, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.bearerOnly:Z
ifeq 1
iconst_0
goto 2
StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.Handler
StackMap stack: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.web.RoutingContext
1: iconst_1
StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.Handler
StackMap stack: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl io.vertx.ext.web.RoutingContext int
2: aload 0
aload 2
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl.lambda$0(Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokevirtual io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.parseAuthorization:(Lio/vertx/ext/web/RoutingContext;ZLio/vertx/core/Handler;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 4 1 context Lio/vertx/ext/web/RoutingContext;
0 4 2 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
Signature: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)V
MethodParameters:
Name Flags
context
handler
private java.lang.String authURI(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
1: ldc "state"
aload 1
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
2: astore 2
start local 2 3: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
ifnull 5
4: aload 2
ldc "redirect_uri"
new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callback:Lio/vertx/ext/web/Route;
invokeinterface io.vertx.ext.web.Route.getPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
pop
5: StackMap locals: io.vertx.core.json.JsonObject
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.extraParams:Lio/vertx/core/json/JsonObject;
ifnull 7
6: aload 2
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.extraParams:Lio/vertx/core/json/JsonObject;
invokevirtual io.vertx.core.json.JsonObject.mergeIn:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.scopes:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
ifle 14
8: new io.vertx.core.json.JsonArray
dup
invokespecial io.vertx.core.json.JsonArray.<init>:()V
astore 3
start local 3 9: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.scopes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonArray top java.util.Iterator
StackMap stack:
10: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 11: aload 3
aload 4
invokevirtual io.vertx.core.json.JsonArray.add:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
pop
end local 4 12: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
13: aload 2
ldc "scopes"
aload 3
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Lio/vertx/core/json/JsonArray;)Lio/vertx/core/json/JsonObject;
pop
end local 3 14: StackMap locals: io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl java.lang.String io.vertx.core.json.JsonObject
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
checkcast io.vertx.ext.auth.oauth2.OAuth2Auth
aload 2
invokeinterface io.vertx.ext.auth.oauth2.OAuth2Auth.authorizeURL:(Lio/vertx/core/json/JsonObject;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 15 1 redirectURL Ljava/lang/String;
3 15 2 config Lio/vertx/core/json/JsonObject;
9 14 3 _scopes Lio/vertx/core/json/JsonArray;
11 12 4 authority Ljava/lang/String;
MethodParameters:
Name Flags
redirectURL
public io.vertx.ext.web.handler.OAuth2AuthHandler extraParams(io.vertx.core.json.JsonObject);
descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/web/handler/OAuth2AuthHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.extraParams:Lio/vertx/core/json/JsonObject;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 2 1 extraParams Lio/vertx/core/json/JsonObject;
MethodParameters:
Name Flags
extraParams
public io.vertx.ext.web.handler.OAuth2AuthHandler setupCallback(io.vertx.ext.web.Route);
descriptor: (Lio/vertx/ext/web/Route;)Lio/vertx/ext/web/handler/OAuth2AuthHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callbackPath:Ljava/lang/String;
ifnull 2
ldc ""
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callbackPath:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 2
1: aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callbackPath:Ljava/lang/String;
invokeinterface io.vertx.ext.web.Route.path:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
pop
2: StackMap locals:
StackMap stack:
aload 1
getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
invokeinterface io.vertx.ext.web.Route.method:(Lio/vertx/core/http/HttpMethod;)Lio/vertx/ext/web/Route;
pop
3: aload 1
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;Lio/vertx/ext/web/Route;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl.lambda$2(Lio/vertx/ext/web/Route;Lio/vertx/ext/web/RoutingContext;)V (7)
(Lio/vertx/ext/web/RoutingContext;)V
invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
pop
4: aload 0
iconst_0
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.bearerOnly:Z
5: aload 0
aload 1
putfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callback:Lio/vertx/ext/web/Route;
6: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 7 1 route Lio/vertx/ext/web/Route;
MethodParameters:
Name Flags
route final
private void lambda$0(io.vertx.core.Handler, io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 3 0: aload 3
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 1
aload 3
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 4
ifnonnull 16
5: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callback:Lio/vertx/ext/web/Route;
ifnonnull 8
6: aload 1
ldc "callback route is not configured."
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
7: return
8: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
invokeinterface io.vertx.core.http.HttpServerRequest.method:()Lio/vertx/core/http/HttpMethod;
getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
if_acmpne 14
9: aload 2
invokeinterface io.vertx.ext.web.RoutingContext.normalisedPath:()Ljava/lang/String;
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.callback:Lio/vertx/ext/web/Route;
invokeinterface io.vertx.ext.web.Route.getPath:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
10: getstatic io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.log:Lio/vertx/core/logging/Logger;
invokevirtual io.vertx.core.logging.Logger.isWarnEnabled:()Z
ifeq 12
11: getstatic io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.log:Lio/vertx/core/logging/Logger;
ldc "The callback route is shaded by the OAuth2AuthHandler, ensure the callback route is added BEFORE the OAuth2AuthHandler route!"
invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 1
new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 500
ldc "Infinite redirect loop [oauth2 callback]"
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(ILjava/lang/String;)V
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
13: goto 17
14: StackMap locals:
StackMap stack:
aload 1
new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 302
aload 0
aload 2
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
invokeinterface io.vertx.core.http.HttpServerRequest.uri:()Ljava/lang/String;
invokevirtual io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.authURI:(Ljava/lang/String;)Ljava/lang/String;
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(ILjava/lang/String;)V
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
checkcast io.vertx.ext.auth.oauth2.OAuth2Auth
aload 4
aload 1
aload 2
invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl.lambda$1(Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.auth.oauth2.OAuth2Auth.decodeToken:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
pop
end local 4 17: StackMap locals:
StackMap stack:
return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 18 3 parseAuthorization Lio/vertx/core/AsyncResult<Ljava/lang/String;>;
4 17 4 token Ljava/lang/String;
private void lambda$2(io.vertx.ext.web.Route, io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/Route;Lio/vertx/ext/web/RoutingContext;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 2 0: aload 2
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
ldc "code"
invokeinterface io.vertx.core.http.HttpServerRequest.getParam:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 4
2: aload 2
sipush 400
invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
3: return
4: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
ldc "state"
invokeinterface io.vertx.core.http.HttpServerRequest.getParam:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 5: new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
6: ldc "code"
aload 3
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
7: astore 5
start local 5 8: aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
ifnull 10
9: aload 5
ldc "redirect_uri"
new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.host:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface io.vertx.ext.web.Route.getPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
pop
10: StackMap locals: java.lang.String io.vertx.core.json.JsonObject
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.extraParams:Lio/vertx/core/json/JsonObject;
ifnull 12
11: aload 5
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.extraParams:Lio/vertx/core/json/JsonObject;
invokevirtual io.vertx.core.json.JsonObject.mergeIn:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
pop
12: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.OAuth2AuthHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
aload 5
aload 2
aload 4
invokedynamic handle(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl.lambda$3(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.auth.AuthProvider.authenticate:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
end local 5 end local 4 end local 3 13: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/vertx/ext/web/handler/impl/OAuth2AuthHandlerImpl;
0 14 2 ctx Lio/vertx/ext/web/RoutingContext;
1 13 3 code Ljava/lang/String;
5 13 4 state Ljava/lang/String;
8 13 5 config Lio/vertx/core/json/JsonObject;
private static void lambda$1(io.vertx.core.Handler, io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Handler;Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 401
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(ILjava/lang/String;)V
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.ext.auth.User
invokeinterface io.vertx.ext.web.RoutingContext.setUser:(Lio/vertx/ext/auth/User;)V
4: aload 0
invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
5: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 6 2 decodeToken Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/oauth2/AccessToken;>;
private static void lambda$3(io.vertx.ext.web.RoutingContext, java.lang.String, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=3
start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
2: goto 22
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.ext.auth.User
invokeinterface io.vertx.ext.web.RoutingContext.setUser:(Lio/vertx/ext/auth/User;)V
4: aload 0
invokeinterface io.vertx.ext.web.RoutingContext.session:()Lio/vertx/ext/web/Session;
astore 3
start local 3 5: aload 3
ifnull 19
6: aload 3
invokeinterface io.vertx.ext.web.Session.regenerateId:()Lio/vertx/ext/web/Session;
pop
7: aload 0
invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
8: getstatic io.vertx.core.http.HttpHeaders.CACHE_CONTROL:Ljava/lang/CharSequence;
ldc "no-cache, no-store, must-revalidate"
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/http/HttpServerResponse;
9: ldc "Pragma"
ldc "no-cache"
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
10: getstatic io.vertx.core.http.HttpHeaders.EXPIRES:Ljava/lang/CharSequence;
ldc "0"
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/http/HttpServerResponse;
11: getstatic io.vertx.core.http.HttpHeaders.LOCATION:Ljava/lang/CharSequence;
aload 1
ifnull 12
aload 1
goto 13
StackMap locals: io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.AsyncResult io.vertx.ext.web.Session
StackMap stack: io.vertx.core.http.HttpServerResponse java.lang.CharSequence
12: ldc "/"
StackMap locals: io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.AsyncResult io.vertx.ext.web.Session
StackMap stack: io.vertx.core.http.HttpServerResponse java.lang.CharSequence java.lang.String
13: invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/http/HttpServerResponse;
14: sipush 302
invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
15: new java.lang.StringBuilder
dup
ldc "Redirecting to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ifnull 16
aload 1
goto 17
StackMap locals: io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.AsyncResult io.vertx.ext.web.Session
StackMap stack: io.vertx.core.http.HttpServerResponse java.lang.StringBuilder
16: ldc "/"
StackMap locals: io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.AsyncResult io.vertx.ext.web.Session
StackMap stack: io.vertx.core.http.HttpServerResponse java.lang.StringBuilder java.lang.String
17: 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;
invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)V
18: goto 22
19: StackMap locals:
StackMap stack:
aload 0
aload 1
ifnull 20
aload 1
goto 21
StackMap locals:
StackMap stack: io.vertx.ext.web.RoutingContext
20: ldc "/"
StackMap locals: io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.AsyncResult io.vertx.ext.web.Session
StackMap stack: io.vertx.ext.web.RoutingContext java.lang.String
21: invokeinterface io.vertx.ext.web.RoutingContext.reroute:(Ljava/lang/String;)V
end local 3 22: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 23 2 res Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;
5 22 3 session Lio/vertx/ext/web/Session;
}
SourceFile: "OAuth2AuthHandlerImpl.java"
InnerClasses:
final Type = io.vertx.ext.web.handler.impl.AuthorizationAuthHandler$Type of io.vertx.ext.web.handler.impl.AuthorizationAuthHandler
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles