public class io.vertx.ext.web.handler.impl.SessionHandlerImpl implements io.vertx.ext.web.handler.SessionHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.web.handler.impl.SessionHandlerImpl
super_class: java.lang.Object
{
private static final java.lang.String SESSION_USER_HOLDER_KEY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "__vertx.userHolder"
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 io.vertx.ext.web.sstore.SessionStore sessionStore;
descriptor: Lio/vertx/ext/web/sstore/SessionStore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String sessionCookieName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String sessionCookiePath;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private long sessionTimeout;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean nagHttps;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean sessionCookieSecure;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean sessionCookieHttpOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int minLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private io.vertx.ext.auth.AuthProvider authProvider;
descriptor: Lio/vertx/ext/auth/AuthProvider;
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/SessionHandlerImpl;
invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
putstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, java.lang.String, long, boolean, boolean, boolean, int, io.vertx.ext.web.sstore.SessionStore);
descriptor: (Ljava/lang/String;Ljava/lang/String;JZZZILio/vertx/ext/web/sstore/SessionStore;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
2: aload 0
aload 2
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookiePath:Ljava/lang/String;
3: aload 0
lload 3
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionTimeout:J
4: aload 0
iload 5
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.nagHttps:Z
5: aload 0
aload 9
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
6: aload 0
iload 6
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieSecure:Z
7: aload 0
iload 7
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieHttpOnly:Z
8: aload 0
iload 8
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.minLength:I
9: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 10 1 sessionCookieName Ljava/lang/String;
0 10 2 sessionCookiePath Ljava/lang/String;
0 10 3 sessionTimeout J
0 10 5 nagHttps Z
0 10 6 sessionCookieSecure Z
0 10 7 sessionCookieHttpOnly Z
0 10 8 minLength I
0 10 9 sessionStore Lio/vertx/ext/web/sstore/SessionStore;
MethodParameters:
Name Flags
sessionCookieName
sessionCookiePath
sessionTimeout
nagHttps
sessionCookieSecure
sessionCookieHttpOnly
minLength
sessionStore
public io.vertx.ext.web.handler.SessionHandler setSessionTimeout(long);
descriptor: (J)Lio/vertx/ext/web/handler/SessionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionTimeout:J
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/SessionHandlerImpl;
0 2 1 timeout J
MethodParameters:
Name Flags
timeout
public io.vertx.ext.web.handler.SessionHandler setNagHttps(boolean);
descriptor: (Z)Lio/vertx/ext/web/handler/SessionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.nagHttps:Z
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/SessionHandlerImpl;
0 2 1 nag Z
MethodParameters:
Name Flags
nag
public io.vertx.ext.web.handler.SessionHandler setCookieSecureFlag(boolean);
descriptor: (Z)Lio/vertx/ext/web/handler/SessionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieSecure:Z
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/SessionHandlerImpl;
0 2 1 secure Z
MethodParameters:
Name Flags
secure
public io.vertx.ext.web.handler.SessionHandler setCookieHttpOnlyFlag(boolean);
descriptor: (Z)Lio/vertx/ext/web/handler/SessionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieHttpOnly:Z
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/SessionHandlerImpl;
0 2 1 httpOnly Z
MethodParameters:
Name Flags
httpOnly
public io.vertx.ext.web.handler.SessionHandler setSessionCookieName(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/SessionHandler;
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.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
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/SessionHandlerImpl;
0 2 1 sessionCookieName Ljava/lang/String;
MethodParameters:
Name Flags
sessionCookieName
public io.vertx.ext.web.handler.SessionHandler setSessionCookiePath(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/SessionHandler;
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.SessionHandlerImpl.sessionCookiePath:Ljava/lang/String;
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/SessionHandlerImpl;
0 2 1 sessionCookiePath Ljava/lang/String;
MethodParameters:
Name Flags
sessionCookiePath
public io.vertx.ext.web.handler.SessionHandler setMinLength(int);
descriptor: (I)Lio/vertx/ext/web/handler/SessionHandler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.minLength:I
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/SessionHandlerImpl;
0 2 1 minLength I
MethodParameters:
Name Flags
minLength
public io.vertx.ext.web.handler.SessionHandler setAuthProvider(io.vertx.ext.auth.AuthProvider);
descriptor: (Lio/vertx/ext/auth/AuthProvider;)Lio/vertx/ext/web/handler/SessionHandler;
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.SessionHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
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/SessionHandlerImpl;
0 2 1 authProvider Lio/vertx/ext/auth/AuthProvider;
MethodParameters:
Name Flags
authProvider
public void handle(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.nagHttps:Z
ifeq 6
getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
invokevirtual io.vertx.core.logging.Logger.isDebugEnabled:()Z
ifeq 6
1: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
invokeinterface io.vertx.core.http.HttpServerRequest.absoluteURI:()Ljava/lang/String;
astore 2
start local 2 2: aload 2
ldc "https:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 6
3: getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
4: new java.lang.StringBuilder
dup
ldc "Using session cookies without https could make you susceptible to session hijacking: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual io.vertx.core.logging.Logger.debug:(Ljava/lang/Object;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
invokeinterface io.vertx.ext.web.RoutingContext.getCookie:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
astore 2
start local 2 7: aload 2
ifnull 12
8: aload 2
invokeinterface io.vertx.ext.web.Cookie.getValue:()Ljava/lang/String;
astore 3
start local 3 9: aload 3
ifnull 12
aload 3
invokevirtual java.lang.String.length:()I
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.minLength:I
if_icmple 12
10: aload 0
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.vertx:()Lio/vertx/core/Vertx;
aload 3
aload 0
aload 1
invokedynamic handle(Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;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/SessionHandlerImpl.lambda$0(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.getSession:(Lio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler;)V
11: return
end local 3 12: StackMap locals: io.vertx.ext.web.Cookie
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.createNewSession:(Lio/vertx/ext/web/RoutingContext;)V
13: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.next:()V
14: return
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/SessionHandlerImpl;
0 15 1 context Lio/vertx/ext/web/RoutingContext;
2 6 2 uri Ljava/lang/String;
7 15 2 cookie Lio/vertx/ext/web/Cookie;
9 12 3 sessionID Ljava/lang/String;
MethodParameters:
Name Flags
context
private void getSession(io.vertx.core.Vertx, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.web.Session>>);
descriptor: (Lio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokestatic java.lang.System.currentTimeMillis:()J
aload 2
aload 3
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.doGetSession:(Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;)V
1: return
end local 3 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/SessionHandlerImpl;
0 2 1 vertx Lio/vertx/core/Vertx;
0 2 2 sessionID Ljava/lang/String;
0 2 3 resultHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;>;
Signature: (Lio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;>;)V
MethodParameters:
Name Flags
vertx
sessionID
resultHandler
private void doGetSession(io.vertx.core.Vertx, long, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.web.Session>>);
descriptor: (Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 4
aload 0
lload 2
aload 1
aload 4
aload 5
invokedynamic handle(Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;JLio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler;)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/SessionHandlerImpl.lambda$1(JLio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.web.sstore.SessionStore.get:(Ljava/lang/String;Lio/vertx/core/Handler;)V
1: return
end local 5 end local 4 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/SessionHandlerImpl;
0 2 1 vertx Lio/vertx/core/Vertx;
0 2 2 startTime J
0 2 4 sessionID Ljava/lang/String;
0 2 5 resultHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;>;
Signature: (Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;>;)V
MethodParameters:
Name Flags
vertx
startTime
sessionID
resultHandler
private void addStoreSessionHandler(io.vertx.ext.web.RoutingContext, boolean);
descriptor: (Lio/vertx/ext/web/RoutingContext;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 1
iload 2
invokedynamic handle(Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;Lio/vertx/ext/web/RoutingContext;Z)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/SessionHandlerImpl.lambda$3(Lio/vertx/ext/web/RoutingContext;ZLjava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokeinterface io.vertx.ext.web.RoutingContext.addHeadersEndHandler:(Lio/vertx/core/Handler;)I
pop
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/SessionHandlerImpl;
0 2 1 context Lio/vertx/ext/web/RoutingContext;
0 2 2 storeUser Z
MethodParameters:
Name Flags
context
storeUser
private void createNewSession(io.vertx.ext.web.RoutingContext);
descriptor: (Lio/vertx/ext/web/RoutingContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionTimeout:J
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.minLength:I
invokeinterface io.vertx.ext.web.sstore.SessionStore.createSession:(JI)Lio/vertx/ext/web/Session;
astore 2
start local 2 1: aload 1
aload 2
invokeinterface io.vertx.ext.web.RoutingContext.setSession:(Lio/vertx/ext/web/Session;)V
2: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
aload 2
invokeinterface io.vertx.ext.web.Session.value:()Ljava/lang/String;
invokestatic io.vertx.ext.web.Cookie.cookie:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
astore 3
start local 3 3: aload 3
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookiePath:Ljava/lang/String;
invokeinterface io.vertx.ext.web.Cookie.setPath:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
pop
4: aload 3
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieSecure:Z
invokeinterface io.vertx.ext.web.Cookie.setSecure:(Z)Lio/vertx/ext/web/Cookie;
pop
5: aload 3
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieHttpOnly:Z
invokeinterface io.vertx.ext.web.Cookie.setHttpOnly:(Z)Lio/vertx/ext/web/Cookie;
pop
6: aload 1
aload 3
invokeinterface io.vertx.ext.web.RoutingContext.addCookie:(Lio/vertx/ext/web/Cookie;)Lio/vertx/ext/web/RoutingContext;
pop
7: aload 0
aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
ifnull 8
iconst_1
goto 9
StackMap locals: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.ext.web.Session io.vertx.ext.web.Cookie
StackMap stack: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext
8: iconst_0
StackMap locals: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.ext.web.Session io.vertx.ext.web.Cookie
StackMap stack: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext int
9: invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.addStoreSessionHandler:(Lio/vertx/ext/web/RoutingContext;Z)V
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 11 1 context Lio/vertx/ext/web/RoutingContext;
1 11 2 session Lio/vertx/ext/web/Session;
3 11 3 cookie Lio/vertx/ext/web/Cookie;
MethodParameters:
Name Flags
context
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.SessionHandlerImpl.handle:(Lio/vertx/ext/web/RoutingContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
private void lambda$0(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=7, args_size=3
start local 0 start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 28
1: aload 2
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.ext.web.Session
astore 3
start local 3 2: aload 3
ifnull 26
3: aload 1
aload 3
invokeinterface io.vertx.ext.web.RoutingContext.setSession:(Lio/vertx/ext/web/Session;)V
4: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
ifnull 24
5: aload 3
ldc "__vertx.userHolder"
invokeinterface io.vertx.ext.web.Session.get:(Ljava/lang/String;)Ljava/lang/Object;
checkcast io.vertx.ext.web.handler.impl.UserHolder
astore 4
start local 4 6: aload 4
ifnull 20
7: aconst_null
astore 5
start local 5 8: aload 4
getfield io.vertx.ext.web.handler.impl.UserHolder.context:Lio/vertx/ext/web/RoutingContext;
astore 6
start local 6 9: aload 6
ifnull 12
10: aload 6
invokeinterface io.vertx.ext.web.RoutingContext.user:()Lio/vertx/ext/auth/User;
astore 5
11: goto 17
StackMap locals: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.AsyncResult io.vertx.ext.web.Session io.vertx.ext.web.handler.impl.UserHolder io.vertx.ext.auth.User io.vertx.ext.web.RoutingContext
StackMap stack:
12: aload 4
getfield io.vertx.ext.web.handler.impl.UserHolder.user:Lio/vertx/ext/auth/User;
ifnull 17
13: aload 4
getfield io.vertx.ext.web.handler.impl.UserHolder.user:Lio/vertx/ext/auth/User;
astore 5
14: aload 5
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.authProvider:Lio/vertx/ext/auth/AuthProvider;
invokeinterface io.vertx.ext.auth.User.setAuthProvider:(Lio/vertx/ext/auth/AuthProvider;)V
15: aload 4
aload 1
putfield io.vertx.ext.web.handler.impl.UserHolder.context:Lio/vertx/ext/web/RoutingContext;
16: aload 4
aconst_null
putfield io.vertx.ext.web.handler.impl.UserHolder.user:Lio/vertx/ext/auth/User;
17: StackMap locals:
StackMap stack:
aload 4
aload 1
putfield io.vertx.ext.web.handler.impl.UserHolder.context:Lio/vertx/ext/web/RoutingContext;
18: aload 5
ifnull 20
19: aload 1
aload 5
invokeinterface io.vertx.ext.web.RoutingContext.setUser:(Lio/vertx/ext/auth/User;)V
end local 6 end local 5 20: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
ifnonnull 21
iconst_1
goto 22
StackMap locals: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.AsyncResult io.vertx.ext.web.Session io.vertx.ext.web.handler.impl.UserHolder
StackMap stack: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext
21: iconst_0
StackMap locals: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.AsyncResult io.vertx.ext.web.Session io.vertx.ext.web.handler.impl.UserHolder
StackMap stack: io.vertx.ext.web.handler.impl.SessionHandlerImpl io.vertx.ext.web.RoutingContext int
22: invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.addStoreSessionHandler:(Lio/vertx/ext/web/RoutingContext;Z)V
end local 4 23: goto 29
24: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.addStoreSessionHandler:(Lio/vertx/ext/web/RoutingContext;Z)V
25: goto 29
26: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.createNewSession:(Lio/vertx/ext/web/RoutingContext;)V
end local 3 27: goto 29
28: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
29: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.ext.web.RoutingContext.next:()V
30: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 31 2 res Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;
2 27 3 session Lio/vertx/ext/web/Session;
6 23 4 holder Lio/vertx/ext/web/handler/impl/UserHolder;
8 20 5 user Lio/vertx/ext/auth/User;
9 20 6 prevContext Lio/vertx/ext/web/RoutingContext;
private void lambda$1(long, io.vertx.core.Vertx, java.lang.String, io.vertx.core.Handler, io.vertx.core.AsyncResult);
descriptor: (JLio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=9, locals=9, args_size=6
start local 0 start local 6 0: aload 6
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 6
1: aload 6
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
ifnonnull 6
2: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
invokeinterface io.vertx.ext.web.sstore.SessionStore.retryTimeout:()J
lstore 7
start local 7 3: lload 7
lconst_0
lcmp
ifle 6
invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
lload 7
lcmp
ifge 6
4: aload 3
ldc 5
aload 0
aload 3
lload 1
aload 4
aload 5
invokedynamic handle(Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;)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/SessionHandlerImpl.lambda$2(Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;Ljava/lang/Long;)V (7)
(Ljava/lang/Long;)V
invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
pop2
5: return
end local 7 6: StackMap locals:
StackMap stack:
aload 5
aload 6
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
7: return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 8 6 res Lio/vertx/core/AsyncResult<Lio/vertx/ext/web/Session;>;
3 6 7 retryTimeout J
private void lambda$3(io.vertx.ext.web.RoutingContext, boolean, java.lang.Void);
descriptor: (Lio/vertx/ext/web/RoutingContext;ZLjava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 3 0: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.session:()Lio/vertx/ext/web/Session;
astore 4
start local 4 1: aload 4
invokeinterface io.vertx.ext.web.Session.isDestroyed:()Z
ifne 18
2: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
invokeinterface io.vertx.core.http.HttpServerResponse.getStatusCode:()I
istore 5
start local 5 3: iload 5
sipush 200
if_icmplt 16
iload 5
sipush 400
if_icmpge 16
4: iload 2
ifeq 7
5: aload 1
invokeinterface io.vertx.ext.web.RoutingContext.user:()Lio/vertx/ext/auth/User;
ifnull 7
6: aload 4
ldc "__vertx.userHolder"
new io.vertx.ext.web.handler.impl.UserHolder
dup
aload 1
invokespecial io.vertx.ext.web.handler.impl.UserHolder.<init>:(Lio/vertx/ext/web/RoutingContext;)V
invokeinterface io.vertx.ext.web.Session.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/ext/web/Session;
pop
7: StackMap locals: io.vertx.ext.web.Session int
StackMap stack:
aload 4
invokeinterface io.vertx.ext.web.Session.setAccessed:()V
8: aload 4
invokeinterface io.vertx.ext.web.Session.isRegenerated:()Z
ifeq 14
9: aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
invokeinterface io.vertx.ext.web.RoutingContext.getCookie:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
astore 6
start local 6 10: aload 6
aload 4
invokeinterface io.vertx.ext.web.Session.value:()Ljava/lang/String;
invokeinterface io.vertx.ext.web.Cookie.setValue:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
ldc "/"
invokeinterface io.vertx.ext.web.Cookie.setPath:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieSecure:Z
invokeinterface io.vertx.ext.web.Cookie.setSecure:(Z)Lio/vertx/ext/web/Cookie;
11: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieHttpOnly:Z
invokeinterface io.vertx.ext.web.Cookie.setHttpOnly:(Z)Lio/vertx/ext/web/Cookie;
pop
12: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 4
invokeinterface io.vertx.ext.web.Session.oldId:()Ljava/lang/String;
aload 0
aload 4
invokedynamic handle(Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;Lio/vertx/ext/web/Session;)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/SessionHandlerImpl.lambda$4(Lio/vertx/ext/web/Session;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.web.sstore.SessionStore.delete:(Ljava/lang/String;Lio/vertx/core/Handler;)V
end local 6 13: goto 20
14: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 4
invokedynamic handle()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/SessionHandlerImpl.lambda$6(Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.web.sstore.SessionStore.put:(Lio/vertx/ext/web/Session;Lio/vertx/core/Handler;)V
15: goto 20
16: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
iconst_0
invokeinterface io.vertx.ext.web.RoutingContext.removeCookie:(Ljava/lang/String;Z)Lio/vertx/ext/web/Cookie;
pop
end local 5 17: goto 20
18: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionCookieName:Ljava/lang/String;
invokeinterface io.vertx.ext.web.RoutingContext.removeCookie:(Ljava/lang/String;)Lio/vertx/ext/web/Cookie;
pop
19: aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 4
invokeinterface io.vertx.ext.web.Session.id:()Ljava/lang/String;
invokedynamic handle()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/SessionHandlerImpl.lambda$7(Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.web.sstore.SessionStore.delete:(Ljava/lang/String;Lio/vertx/core/Handler;)V
end local 4 20: StackMap locals:
StackMap stack:
return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 21 3 v Ljava/lang/Void;
1 20 4 session Lio/vertx/ext/web/Session;
3 17 5 currentStatusCode I
10 13 6 cookie Lio/vertx/ext/web/Cookie;
private void lambda$2(io.vertx.core.Vertx, long, java.lang.String, io.vertx.core.Handler, java.lang.Long);
descriptor: (Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;Ljava/lang/Long;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=7, args_size=6
start local 0 start local 6 0: aload 0
aload 1
lload 2
aload 4
aload 5
invokevirtual io.vertx.ext.web.handler.impl.SessionHandlerImpl.doGetSession:(Lio/vertx/core/Vertx;JLjava/lang/String;Lio/vertx/core/Handler;)V
return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 1 6 v Ljava/lang/Long;
private void lambda$4(io.vertx.ext.web.Session, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/ext/web/Session;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: getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
ldc "Failed to delete previous session"
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.ext.web.handler.impl.SessionHandlerImpl.sessionStore:Lio/vertx/ext/web/sstore/SessionStore;
aload 1
invokedynamic handle()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/SessionHandlerImpl.lambda$5(Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.web.sstore.SessionStore.put:(Lio/vertx/ext/web/Session;Lio/vertx/core/Handler;)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/web/handler/impl/SessionHandlerImpl;
0 5 2 delete Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
private static void lambda$6(io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 2
1: getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
ldc "Failed to store session"
aload 0
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 res Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
private static void lambda$7(io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 2
1: getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
ldc "Failed to delete session"
aload 0
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 res Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
private static void lambda$5(io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 2
1: getstatic io.vertx.ext.web.handler.impl.SessionHandlerImpl.log:Lio/vertx/core/logging/Logger;
ldc "Failed to store session"
aload 0
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 res Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
}
SourceFile: "SessionHandlerImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles