public abstract class io.vertx.ext.web.handler.impl.AuthHandlerImpl implements io.vertx.ext.web.handler.AuthHandler
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: io.vertx.ext.web.handler.impl.AuthHandlerImpl
super_class: java.lang.Object
{
static final java.lang.String AUTH_PROVIDER_CONTEXT_KEY;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "io.vertx.ext.web.handler.AuthHandler.provider"
static final io.vertx.ext.web.handler.impl.HttpStatusException FORBIDDEN;
descriptor: Lio/vertx/ext/web/handler/impl/HttpStatusException;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final io.vertx.ext.web.handler.impl.HttpStatusException UNAUTHORIZED;
descriptor: Lio/vertx/ext/web/handler/impl/HttpStatusException;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final io.vertx.ext.web.handler.impl.HttpStatusException BAD_REQUEST;
descriptor: Lio/vertx/ext/web/handler/impl/HttpStatusException;
flags: (0x0018) ACC_STATIC, ACC_FINAL
protected final java.lang.String realm;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.vertx.ext.auth.AuthProvider authProvider;
descriptor: Lio/vertx/ext/auth/AuthProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.util.Set<java.lang.String> authorities;
descriptor: Ljava/util/Set;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 403
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(I)V
putstatic io.vertx.ext.web.handler.impl.AuthHandlerImpl.FORBIDDEN:Lio/vertx/ext/web/handler/impl/HttpStatusException;
1: new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 401
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(I)V
putstatic io.vertx.ext.web.handler.impl.AuthHandlerImpl.UNAUTHORIZED:Lio/vertx/ext/web/handler/impl/HttpStatusException;
2: new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 400
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(I)V
putstatic io.vertx.ext.web.handler.impl.AuthHandlerImpl.BAD_REQUEST:Lio/vertx/ext/web/handler/impl/HttpStatusException;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.vertx.ext.auth.AuthProvider);
descriptor: (Lio/vertx/ext/auth/AuthProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc ""
invokespecial io.vertx.ext.web.handler.impl.AuthHandlerImpl.<init>:(Lio/vertx/ext/auth/AuthProvider;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 2 1 authProvider Lio/vertx/ext/auth/AuthProvider;
MethodParameters:
Name Flags
authProvider
public void <init>(io.vertx.ext.auth.AuthProvider, java.lang.String);
descriptor: (Lio/vertx/ext/auth/AuthProvider;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorities:Ljava/util/Set;
2: aload 0
aload 1
putfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
3: aload 0
aload 2
putfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.realm:Ljava/lang/String;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 5 1 authProvider Lio/vertx/ext/auth/AuthProvider;
0 5 2 realm Ljava/lang/String;
MethodParameters:
Name Flags
authProvider
realm
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.AuthHandlerImpl.authorities: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/AuthHandlerImpl;
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.AuthHandlerImpl.authorities: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/AuthHandlerImpl;
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 authorize(io.vertx.ext.auth.User, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/ext/auth/User;Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorities:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 3
start local 3 1: iload 3
ifle 14
2: aload 1
ifnonnull 5
3: aload 2
getstatic io.vertx.ext.web.handler.impl.AuthHandlerImpl.FORBIDDEN:Lio/vertx/ext/web/handler/impl/HttpStatusException;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
4: return
5: StackMap locals: int
StackMap stack:
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
astore 4
start local 4 6: new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
astore 5
start local 5 7: aload 4
iload 3
aload 2
aload 5
invokedynamic handle(Ljava/util/concurrent/atomic/AtomicInteger;ILio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;)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/AuthHandlerImpl.lambda$0(Ljava/util/concurrent/atomic/AtomicInteger;ILio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
astore 6
start local 6 8: aload 0
getfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorities:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: io.vertx.ext.web.handler.impl.AuthHandlerImpl io.vertx.ext.auth.User io.vertx.core.Handler int java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicBoolean io.vertx.core.Handler top java.util.Iterator
StackMap stack:
9: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 10: aload 5
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifne 12
11: aload 1
aload 7
aload 6
invokeinterface io.vertx.ext.auth.User.isAuthorized:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/User;
pop
end local 7 12: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 6 end local 5 end local 4 13: goto 15
14: StackMap locals: io.vertx.ext.web.handler.impl.AuthHandlerImpl io.vertx.ext.auth.User io.vertx.core.Handler int
StackMap stack:
aload 2
invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
return
end local 3 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/AuthHandlerImpl;
0 16 1 user Lio/vertx/ext/auth/User;
0 16 2 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
1 16 3 requiredcount I
6 13 4 count Ljava/util/concurrent/atomic/AtomicInteger;
7 13 5 sentFailure Ljava/util/concurrent/atomic/AtomicBoolean;
8 13 6 authHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
10 12 7 authority Ljava/lang/String;
Signature: (Lio/vertx/ext/auth/User;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
MethodParameters:
Name Flags
user
handler
protected java.lang.String authenticateHeader(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 1 1 context Lio/vertx/ext/web/RoutingContext;
MethodParameters:
Name Flags
context
public void handle(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.handlePreflight:(Lio/vertx/ext/web/RoutingContext;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.user:()Lio/vertx/ext/auth/User;
astore 2
start local 2 3: aload 2
ifnull 6
4: aload 0
aload 1
aload 2
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser:(Lio/vertx/ext/web/RoutingContext;Lio/vertx/ext/auth/User;)V
5: return
6: StackMap locals: io.vertx.ext.auth.User
StackMap stack:
aload 0
aload 1
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;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/AuthHandlerImpl.lambda$1(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.parseCredentials:(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/Handler;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 8 1 ctx Lio/vertx/ext/web/RoutingContext;
3 8 2 user Lio/vertx/ext/auth/User;
MethodParameters:
Name Flags
ctx
protected void processException(io.vertx.ext.web.RoutingContext, java.lang.Throwable);
descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 18
1: aload 2
instanceof io.vertx.ext.web.handler.impl.HttpStatusException
ifeq 18
2: aload 2
checkcast io.vertx.ext.web.handler.impl.HttpStatusException
invokevirtual io.vertx.ext.web.handler.impl.HttpStatusException.getStatusCode:()I
istore 3
start local 3 3: aload 2
checkcast io.vertx.ext.web.handler.impl.HttpStatusException
invokevirtual io.vertx.ext.web.handler.impl.HttpStatusException.getPayload:()Ljava/lang/String;
astore 4
start local 4 4: iload 3
lookupswitch { // 2
302: 5
401: 10
default: 16
}
5: StackMap locals: int java.lang.String
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
6: getstatic io.vertx.core.http.HttpHeaders.LOCATION:Ljava/lang/CharSequence;
aload 4
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/http/HttpServerResponse;
7: sipush 302
invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
8: new java.lang.StringBuilder
dup
ldc "Redirecting to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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
9: return
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authenticateHeader:(Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
astore 5
start local 5 11: aload 5
ifnull 14
12: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
13: ldc "WWW-Authenticate"
aload 5
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
pop
14: StackMap locals: java.lang.String
StackMap stack:
aload 1
sipush 401
invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
15: return
end local 5 16: StackMap locals:
StackMap stack:
aload 1
iload 3
invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
17: return
end local 4 end local 3 18: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 20 1 ctx Lio/vertx/ext/web/RoutingContext;
0 20 2 exception Ljava/lang/Throwable;
3 18 3 statusCode I
4 18 4 payload Ljava/lang/String;
11 16 5 header Ljava/lang/String;
MethodParameters:
Name Flags
ctx
exception
private void authorizeUser(io.vertx.ext.web.RoutingContext, io.vertx.ext.auth.User);
descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/ext/auth/User;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;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/AuthHandlerImpl.lambda$3(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorize:(Lio/vertx/ext/auth/User;Lio/vertx/core/Handler;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 2 1 ctx Lio/vertx/ext/web/RoutingContext;
0 2 2 user Lio/vertx/ext/auth/User;
MethodParameters:
Name Flags
ctx
user
private boolean handlePreflight(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
astore 2
start local 2 1: aload 2
invokeinterface io.vertx.core.http.HttpServerRequest.method:()Lio/vertx/core/http/HttpMethod;
getstatic io.vertx.core.http.HttpMethod.OPTIONS:Lio/vertx/core/http/HttpMethod;
if_acmpne 11
2: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
getstatic io.vertx.core.http.HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS:Ljava/lang/CharSequence;
invokeinterface io.vertx.core.http.HttpServerRequest.getHeader:(Ljava/lang/CharSequence;)Ljava/lang/String;
astore 3
start local 3 3: aload 3
ifnull 11
4: aload 3
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 10
StackMap locals: io.vertx.ext.web.handler.impl.AuthHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest java.lang.String top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 4
ldc "Authorization"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 9
7: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.next:()V
8: iconst_1
ireturn
end local 4 9: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 6
if_icmplt 5
end local 3 11: StackMap locals: io.vertx.ext.web.handler.impl.AuthHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 12 1 ctx Lio/vertx/ext/web/RoutingContext;
1 12 2 request Lio/vertx/core/http/HttpServerRequest;
3 11 3 accessControlRequestHeader Ljava/lang/String;
6 9 4 ctrlReq Ljava/lang/String;
MethodParameters:
Name Flags
ctx
private io.vertx.ext.auth.AuthProvider getAuthProvider(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)Lio/vertx/ext/auth/AuthProvider;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "io.vertx.ext.web.handler.AuthHandler.provider"
invokeinterface io.vertx.ext.web.RoutingContext.get:(Ljava/lang/String;)Ljava/lang/Object;
checkcast io.vertx.ext.auth.AuthProvider
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
3: areturn
end local 2 4: StackMap locals:
StackMap stack: java.lang.RuntimeException
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.AuthHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 6 1 ctx Lio/vertx/ext/web/RoutingContext;
1 4 2 provider Lio/vertx/ext/auth/AuthProvider;
Exception table:
from to target type
0 3 4 Class java.lang.RuntimeException
MethodParameters:
Name Flags
ctx
public void handle(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast io.vertx.ext.web.RoutingContext
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.handle:(Lio/vertx/ext/web/RoutingContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
private static void lambda$0(java.util.concurrent.atomic.AtomicInteger, int, io.vertx.core.Handler, java.util.concurrent.atomic.AtomicBoolean, io.vertx.core.AsyncResult);
descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=5, args_size=5
start local 4 0: aload 4
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 8
1: aload 4
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 5
2: aload 0
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
iload 1
if_icmpne 9
3: aload 2
invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
4: goto 9
5: StackMap locals:
StackMap stack:
aload 3
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 9
6: aload 2
getstatic io.vertx.ext.web.handler.impl.AuthHandlerImpl.FORBIDDEN:Lio/vertx/ext/web/handler/impl/HttpStatusException;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 2
aload 4
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
9: StackMap locals:
StackMap stack:
return
end local 4 LocalVariableTable:
Start End Slot Name Signature
0 10 4 res Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;
private void lambda$1(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
aload 1
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.processException:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.user:()Lio/vertx/ext/auth/User;
astore 3
start local 3 4: aload 3
ifnull 10
5: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.session:()Lio/vertx/ext/web/Session;
astore 4
start local 4 6: aload 4
ifnull 8
7: aload 4
invokeinterface io.vertx.ext.web.Session.regenerateId:()Lio/vertx/ext/web/Session;
pop
8: StackMap locals: io.vertx.ext.auth.User io.vertx.ext.web.Session
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser:(Lio/vertx/ext/web/RoutingContext;Lio/vertx/ext/auth/User;)V
9: return
end local 4 10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.getAuthProvider:(Lio/vertx/ext/web/RoutingContext;)Lio/vertx/ext/auth/AuthProvider;
aload 2
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.core.json.JsonObject
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;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/AuthHandlerImpl.lambda$2(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.auth.AuthProvider.authenticate:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
end local 3 11: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 12 2 res Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;
4 11 3 updatedUser Lio/vertx/ext/auth/User;
6 10 4 session Lio/vertx/ext/web/Session;
private void lambda$3(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
aload 1
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.processException:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.next:()V
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 5 2 authZ Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
private void lambda$2(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 8
1: aload 2
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.ext.auth.User
astore 3
start local 3 2: aload 1
aload 3
invokeinterface io.vertx.ext.web.RoutingContext.setUser:(Lio/vertx/ext/auth/User;)V
3: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.session:()Lio/vertx/ext/web/Session;
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 4
invokeinterface io.vertx.ext.web.Session.regenerateId:()Lio/vertx/ext/web/Session;
pop
6: StackMap locals: io.vertx.ext.auth.User io.vertx.ext.web.Session
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authorizeUser:(Lio/vertx/ext/web/RoutingContext;Lio/vertx/ext/auth/User;)V
end local 4 end local 3 7: goto 13
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.authenticateHeader:(Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
astore 3
start local 3 9: aload 3
ifnull 12
10: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
11: ldc "WWW-Authenticate"
aload 3
invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
pop
12: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 1
new io.vertx.ext.web.handler.impl.HttpStatusException
dup
sipush 401
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokespecial io.vertx.ext.web.handler.impl.HttpStatusException.<init>:(ILjava/lang/Throwable;)V
invokevirtual io.vertx.ext.web.handler.impl.AuthHandlerImpl.processException:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/Throwable;)V
end local 3 13: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/vertx/ext/web/handler/impl/AuthHandlerImpl;
0 14 2 authN Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;
2 7 3 authenticated Lio/vertx/ext/auth/User;
4 7 4 session Lio/vertx/ext/web/Session;
9 13 3 header Ljava/lang/String;
}
SourceFile: "AuthHandlerImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles