public final class io.vertx.ext.jwt.JWT
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.vertx.ext.jwt.JWT
super_class: java.lang.Object
{
private static final java.util.Random RND;
descriptor: Ljava/util/Random;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.String, java.lang.String> ALGORITHM_ALIAS;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private static final java.nio.charset.Charset UTF8;
descriptor: Ljava/nio/charset/Charset;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final io.vertx.core.logging.Logger log;
descriptor: Lio/vertx/core/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Base64$Encoder encoder;
descriptor: Ljava/util/Base64$Encoder;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Base64$Decoder decoder;
descriptor: Ljava/util/Base64$Decoder;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Map<java.lang.String, java.util.List<io.vertx.ext.jwt.Crypto>> cryptoMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putstatic io.vertx.ext.jwt.JWT.RND:Ljava/util/Random;
1: new io.vertx.ext.jwt.JWT$1
dup
invokespecial io.vertx.ext.jwt.JWT$1.<init>:()V
putstatic io.vertx.ext.jwt.JWT.ALGORITHM_ALIAS:Ljava/util/Map;
2: getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
putstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
3: ldc Lio/vertx/ext/jwt/JWT;
invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
putstatic io.vertx.ext.jwt.JWT.log:Lio/vertx/core/logging/Logger;
4: invokestatic java.util.Base64.getUrlEncoder:()Ljava/util/Base64$Encoder;
invokevirtual java.util.Base64$Encoder.withoutPadding:()Ljava/util/Base64$Encoder;
putstatic io.vertx.ext.jwt.JWT.encoder:Ljava/util/Base64$Encoder;
5: invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
putstatic io.vertx.ext.jwt.JWT.decoder:Ljava/util/Base64$Decoder;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
2: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
ldc "none"
new io.vertx.ext.jwt.CryptoNone
dup
invokespecial io.vertx.ext.jwt.CryptoNone.<init>:()V
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/jwt/JWT;
public void <init>(java.security.KeyStore, char[]);
descriptor: (Ljava/security/KeyStore;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial io.vertx.ext.jwt.JWT.<init>:()V
1: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "HS256"
aastore
dup
iconst_1
ldc "HS384"
aastore
dup
iconst_2
ldc "HS512"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: aload 0
aload 1
aload 2
aload 3
invokevirtual io.vertx.ext.jwt.JWT.getMac:(Ljava/security/KeyStore;[CLjava/lang/String;)Ljavax/crypto/Mac;
astore 5
start local 5 4: aload 5
ifnull 8
5: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
aload 3
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
io/vertx/ext/jwt/JWT.lambda$0(Ljava/lang/String;)Ljava/util/List; (6)
(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
astore 6
start local 6 6: aload 6
new io.vertx.ext.jwt.CryptoMac
dup
aload 5
invokespecial io.vertx.ext.jwt.CryptoMac.<init>:(Ljavax/crypto/Mac;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 7: goto 12
8: StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] java.lang.String java.util.Iterator javax.crypto.Mac
StackMap stack:
getstatic io.vertx.ext.jwt.JWT.log:Lio/vertx/core/logging/Logger;
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not available"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
end local 5 9: goto 12
StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] java.lang.String java.util.Iterator
StackMap stack: java.lang.RuntimeException
10: astore 5
start local 5 11: getstatic io.vertx.ext.jwt.JWT.log:Lio/vertx/core/logging/Logger;
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 end local 3 12: StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
13: bipush 6
anewarray java.lang.String
dup
iconst_0
ldc "RS256"
aastore
dup
iconst_1
ldc "RS384"
aastore
dup
iconst_2
ldc "RS512"
aastore
dup
iconst_3
ldc "ES256"
aastore
dup
iconst_4
ldc "ES384"
aastore
dup
iconst_5
ldc "ES512"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 26
StackMap locals:
StackMap stack:
14: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 15: aload 0
aload 1
aload 3
invokevirtual io.vertx.ext.jwt.JWT.getCertificate:(Ljava/security/KeyStore;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
astore 5
start local 5 16: aload 0
aload 1
aload 2
aload 3
invokevirtual io.vertx.ext.jwt.JWT.getPrivateKey:(Ljava/security/KeyStore;[CLjava/lang/String;)Ljava/security/PrivateKey;
astore 6
start local 6 17: aload 5
ifnull 21
aload 6
ifnull 21
18: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
aload 3
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
io/vertx/ext/jwt/JWT.lambda$1(Ljava/lang/String;)Ljava/util/List; (6)
(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
astore 7
start local 7 19: aload 7
new io.vertx.ext.jwt.CryptoSignature
dup
getstatic io.vertx.ext.jwt.JWT.ALGORITHM_ALIAS:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 5
aload 6
invokespecial io.vertx.ext.jwt.CryptoSignature.<init>:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 20: goto 26
21: StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] java.lang.String java.util.Iterator java.security.cert.X509Certificate java.security.PrivateKey
StackMap stack:
getstatic io.vertx.ext.jwt.JWT.log:Lio/vertx/core/logging/Logger;
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not available"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
end local 6 end local 5 22: goto 26
StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] java.lang.String java.util.Iterator
StackMap stack: java.lang.RuntimeException
23: astore 5
start local 5 24: aload 5
invokevirtual java.lang.RuntimeException.printStackTrace:()V
25: getstatic io.vertx.ext.jwt.JWT.log:Lio/vertx/core/logging/Logger;
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
end local 5 end local 3 26: StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
27: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/vertx/ext/jwt/JWT;
0 28 1 keyStore Ljava/security/KeyStore;
0 28 2 keyStorePassword [C
3 12 3 alg Ljava/lang/String;
4 9 5 mac Ljavax/crypto/Mac;
6 7 6 l Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;
11 12 5 e Ljava/lang/RuntimeException;
15 26 3 alg Ljava/lang/String;
16 22 5 certificate Ljava/security/cert/X509Certificate;
17 22 6 privateKey Ljava/security/PrivateKey;
19 20 7 l Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;
24 26 5 e Ljava/lang/RuntimeException;
Exception table:
from to target type
3 9 10 Class java.lang.RuntimeException
15 22 23 Class java.lang.RuntimeException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
keyStore final
keyStorePassword final
public void <init>(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)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 io.vertx.ext.jwt.JWT.<init>:()V
1: iload 2
ifeq 4
2: aload 0
ldc "RS256"
aload 1
invokevirtual io.vertx.ext.jwt.JWT.addSecretKey:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
pop
3: goto 5
4: StackMap locals: io.vertx.ext.jwt.JWT java.lang.String int
StackMap stack:
aload 0
ldc "RS256"
aload 1
invokevirtual io.vertx.ext.jwt.JWT.addPublicKey:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
pop
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/ext/jwt/JWT;
0 6 1 key Ljava/lang/String;
0 6 2 keyPrivate Z
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
key
keyPrivate
public io.vertx.ext.jwt.JWT addJWK(io.vertx.ext.jwt.JWK);
descriptor: (Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
aload 1
invokevirtual io.vertx.ext.jwt.JWK.getAlgorithm:()Ljava/lang/String;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
io/vertx/ext/jwt/JWT.lambda$2(Ljava/lang/String;)Ljava/util/List; (6)
(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.List
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 8
4: StackMap locals: java.util.List int int
StackMap stack:
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.vertx.ext.jwt.Crypto
invokeinterface io.vertx.ext.jwt.Crypto.getId:()Ljava/lang/String;
aload 1
invokevirtual io.vertx.ext.jwt.JWK.getId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 2
iload 4
aload 1
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
6: iconst_1
istore 3
7: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
aload 2
invokeinterface java.util.List.size:()I
if_icmplt 4
end local 4 9: iload 3
ifne 11
10: aload 2
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/ext/jwt/JWT;
0 12 1 jwk Lio/vertx/ext/jwt/JWK;
1 12 2 current Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;
2 12 3 replaced Z
3 9 4 i I
MethodParameters:
Name Flags
jwk
public io.vertx.ext.jwt.JWT addPublicKey(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new io.vertx.ext.jwt.JWK
dup
aload 1
aload 2
aconst_null
invokespecial io.vertx.ext.jwt.JWK.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual io.vertx.ext.jwt.JWT.addJWK:(Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
0 1 1 algorithm Ljava/lang/String;
0 1 2 key Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
key
public io.vertx.ext.jwt.JWT addKeyPair(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new io.vertx.ext.jwt.JWK
dup
aload 1
aload 2
aload 3
invokespecial io.vertx.ext.jwt.JWK.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual io.vertx.ext.jwt.JWT.addJWK:(Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
0 1 1 algorithm Ljava/lang/String;
0 1 2 publicKey Ljava/lang/String;
0 1 3 privateKey Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
publicKey
privateKey
public io.vertx.ext.jwt.JWT addSecretKey(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new io.vertx.ext.jwt.JWK
dup
aload 1
aconst_null
aload 2
invokespecial io.vertx.ext.jwt.JWK.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
invokevirtual io.vertx.ext.jwt.JWT.addJWK:(Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
0 1 1 algorithm Ljava/lang/String;
0 1 2 key Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
key
public io.vertx.ext.jwt.JWT addCertificate(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new io.vertx.ext.jwt.JWK
dup
aload 1
iconst_1
aload 2
aconst_null
invokespecial io.vertx.ext.jwt.JWK.<init>:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)V
invokevirtual io.vertx.ext.jwt.JWT.addJWK:(Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
0 1 1 algorithm Ljava/lang/String;
0 1 2 cert Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
cert
public io.vertx.ext.jwt.JWT addSecret(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/jwt/JWT;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new io.vertx.ext.jwt.JWK
dup
aload 1
aload 2
invokespecial io.vertx.ext.jwt.JWK.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual io.vertx.ext.jwt.JWT.addJWK:(Lio/vertx/ext/jwt/JWK;)Lio/vertx/ext/jwt/JWT;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
0 1 1 algorithm Ljava/lang/String;
0 1 2 key Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
key
private javax.crypto.Mac getMac(java.security.KeyStore, char[], java.lang.String);
descriptor: (Ljava/security/KeyStore;[CLjava/lang/String;)Ljavax/crypto/Mac;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 3
aload 2
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.security.Key
StackMap stack:
aload 4
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 5
start local 5 4: aload 5
aload 4
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
5: aload 5
6: areturn
end local 5 end local 4 7: StackMap locals: io.vertx.ext.jwt.JWT java.security.KeyStore char[] java.lang.String
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 8: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/vertx/ext/jwt/JWT;
0 9 1 keyStore Ljava/security/KeyStore;
0 9 2 keyStorePassword [C
0 9 3 alias Ljava/lang/String;
1 7 4 secretKey Ljava/security/Key;
4 7 5 mac Ljavax/crypto/Mac;
8 9 4 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 2 7 Class java.security.NoSuchAlgorithmException
3 6 7 Class java.security.NoSuchAlgorithmException
0 2 7 Class java.security.InvalidKeyException
3 6 7 Class java.security.InvalidKeyException
0 2 7 Class java.security.UnrecoverableKeyException
3 6 7 Class java.security.UnrecoverableKeyException
0 2 7 Class java.security.KeyStoreException
3 6 7 Class java.security.KeyStoreException
MethodParameters:
Name Flags
keyStore final
keyStorePassword final
alias final
private java.security.cert.X509Certificate getCertificate(java.security.KeyStore, java.lang.String);
descriptor: (Ljava/security/KeyStore;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
1: areturn
2: StackMap locals:
StackMap stack: java.security.KeyStoreException
astore 3
start local 3 3: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/jwt/JWT;
0 4 1 keyStore Ljava/security/KeyStore;
0 4 2 alias Ljava/lang/String;
3 4 3 e Ljava/security/KeyStoreException;
Exception table:
from to target type
0 1 2 Class java.security.KeyStoreException
MethodParameters:
Name Flags
keyStore final
alias final
private java.security.PrivateKey getPrivateKey(java.security.KeyStore, char[], java.lang.String);
descriptor: (Ljava/security/KeyStore;[CLjava/lang/String;)Ljava/security/PrivateKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 3
aload 2
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
checkcast java.security.PrivateKey
1: areturn
2: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 3: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/ext/jwt/JWT;
0 4 1 keyStore Ljava/security/KeyStore;
0 4 2 keyStorePassword [C
0 4 3 alias Ljava/lang/String;
3 4 4 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 1 2 Class java.security.NoSuchAlgorithmException
0 1 2 Class java.security.UnrecoverableKeyException
0 1 2 Class java.security.KeyStoreException
MethodParameters:
Name Flags
keyStore final
keyStorePassword final
alias final
public io.vertx.core.json.JsonObject decode(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=2
start local 0 start local 1 0: aload 1
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 1: aload 2
arraylength
aload 0
invokevirtual io.vertx.ext.jwt.JWT.isUnsecure:()Z
ifeq 2
iconst_2
goto 3
StackMap locals: io.vertx.ext.jwt.JWT java.lang.String java.lang.String[]
StackMap stack: int
2: iconst_3
StackMap locals: io.vertx.ext.jwt.JWT java.lang.String java.lang.String[]
StackMap stack: int int
3: if_icmpeq 5
4: new java.lang.RuntimeException
dup
ldc "Not enough or too many segments"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
astore 3
start local 3 6: aload 2
iconst_1
aaload
astore 4
start local 4 7: aload 0
invokevirtual io.vertx.ext.jwt.JWT.isUnsecure:()Z
ifeq 8
aconst_null
goto 9
StackMap locals: java.lang.String java.lang.String
StackMap stack:
8: aload 2
iconst_2
aaload
StackMap locals:
StackMap stack: java.lang.String
9: astore 5
start local 5 10: ldc ""
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: new java.lang.RuntimeException
dup
ldc "Signature is required"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: java.lang.String
StackMap stack:
new io.vertx.core.json.JsonObject
dup
new java.lang.String
dup
aload 3
invokestatic io.vertx.ext.jwt.JWT.base64urlDecode:(Ljava/lang/String;)[B
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
astore 6
start local 6 13: new io.vertx.core.json.JsonObject
dup
new java.lang.String
dup
aload 4
invokestatic io.vertx.ext.jwt.JWT.base64urlDecode:(Ljava/lang/String;)[B
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
astore 7
start local 7 14: aload 6
ldc "alg"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 15: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 9
start local 9 16: aload 9
ifnull 17
aload 9
invokeinterface java.util.List.size:()I
ifne 18
17: StackMap locals: io.vertx.ext.jwt.JWT java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject java.lang.String java.util.List
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Algorithm not supported"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.ext.jwt.JWT.isUnsecure:()Z
ifne 20
ldc "none"
aload 8
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
19: new java.lang.RuntimeException
dup
ldc "Algorithm \"none\" not allowed"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.ext.jwt.JWT.isUnsecure:()Z
ifne 29
21: aload 5
invokestatic io.vertx.ext.jwt.JWT.base64urlDecode:(Ljava/lang/String;)[B
astore 10
start local 10 22: new java.lang.StringBuilder
dup
aload 3
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 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 11
start local 11 23: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 27
StackMap locals: io.vertx.ext.jwt.JWT java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject java.lang.String java.util.List byte[] byte[] top java.util.Iterator
StackMap stack:
24: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.ext.jwt.Crypto
astore 12
start local 12 25: aload 12
aload 10
aload 11
invokeinterface io.vertx.ext.jwt.Crypto.verify:([B[B)Z
ifeq 27
26: aload 7
areturn
end local 12 27: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
28: new java.lang.RuntimeException
dup
ldc "Signature verification failed"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 11 end local 10 29: StackMap locals: io.vertx.ext.jwt.JWT java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject java.lang.String java.util.List
StackMap stack:
aload 7
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lio/vertx/ext/jwt/JWT;
0 30 1 token Ljava/lang/String;
1 30 2 segments [Ljava/lang/String;
6 30 3 headerSeg Ljava/lang/String;
7 30 4 payloadSeg Ljava/lang/String;
10 30 5 signatureSeg Ljava/lang/String;
13 30 6 header Lio/vertx/core/json/JsonObject;
14 30 7 payload Lio/vertx/core/json/JsonObject;
15 30 8 alg Ljava/lang/String;
16 30 9 cryptos Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;
22 29 10 payloadInput [B
23 29 11 signingInput [B
25 27 12 c Lio/vertx/ext/jwt/Crypto;
MethodParameters:
Name Flags
token final
public boolean isExpired(io.vertx.core.json.JsonObject, io.vertx.ext.jwt.JWTOptions);
descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/ext/jwt/JWTOptions;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
ldc 1000
ldiv
lstore 3
start local 3 3: aload 1
ldc "exp"
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 6
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.isIgnoreExpiration:()Z
ifne 6
4: lload 3
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getLeeway:()I
i2l
lsub
aload 1
ldc "exp"
invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
lcmp
iflt 6
5: new java.lang.RuntimeException
dup
ldc "Expired JWT token: exp <= now"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: long
StackMap stack:
aload 1
ldc "iat"
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 10
7: aload 1
ldc "iat"
invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
astore 5
start local 5 8: aload 5
invokevirtual java.lang.Long.longValue:()J
lload 3
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getLeeway:()I
i2l
ladd
lcmp
ifle 10
9: new java.lang.RuntimeException
dup
ldc "Invalid JWT token: iat > now"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 5 10: StackMap locals:
StackMap stack:
aload 1
ldc "nbf"
invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
ifeq 14
11: aload 1
ldc "nbf"
invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
astore 5
start local 5 12: aload 5
invokevirtual java.lang.Long.longValue:()J
lload 3
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getLeeway:()I
i2l
ladd
lcmp
ifle 14
13: new java.lang.RuntimeException
dup
ldc "Invalid JWT token: nbf > now"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 5 14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/vertx/ext/jwt/JWT;
0 15 1 jwt Lio/vertx/core/json/JsonObject;
0 15 2 options Lio/vertx/ext/jwt/JWTOptions;
3 15 3 now J
8 10 5 iat Ljava/lang/Long;
12 14 5 nbf Ljava/lang/Long;
MethodParameters:
Name Flags
jwt
options
public java.lang.String sign(io.vertx.core.json.JsonObject, io.vertx.ext.jwt.JWTOptions);
descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/ext/jwt/JWTOptions;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAlgorithm:()Ljava/lang/String;
astore 3
start local 3 1: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 2: aload 4
ifnull 3
aload 4
invokeinterface java.util.List.size:()I
ifne 4
3: StackMap locals: java.lang.String java.util.List
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Algorithm not supported"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
5: aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getHeader:()Lio/vertx/core/json/JsonObject;
invokevirtual io.vertx.core.json.JsonObject.mergeIn:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
6: ldc "typ"
ldc "JWT"
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
7: ldc "alg"
aload 3
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
8: astore 5
start local 5 9: invokestatic java.lang.System.currentTimeMillis:()J
ldc 1000
ldiv
lstore 6
start local 6 10: aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.isNoTimestamp:()Z
ifne 12
11: aload 1
ldc "iat"
aload 1
ldc "iat"
lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
pop
12: StackMap locals: io.vertx.core.json.JsonObject long
StackMap stack:
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getExpiresInSeconds:()I
ifle 14
13: aload 1
ldc "exp"
lload 6
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getExpiresInSeconds:()I
i2l
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Long;)Lio/vertx/core/json/JsonObject;
pop
14: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAudience:()Ljava/util/List;
ifnull 19
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAudience:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmplt 19
15: aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAudience:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 18
16: aload 1
ldc "aud"
new io.vertx.core.json.JsonArray
dup
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAudience:()Ljava/util/List;
invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Lio/vertx/core/json/JsonArray;)Lio/vertx/core/json/JsonObject;
pop
17: goto 19
18: StackMap locals:
StackMap stack:
aload 1
ldc "aud"
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getAudience:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
pop
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getIssuer:()Ljava/lang/String;
ifnull 21
20: aload 1
ldc "iss"
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getIssuer:()Ljava/lang/String;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
pop
21: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getSubject:()Ljava/lang/String;
ifnull 23
22: aload 1
ldc "sub"
aload 2
invokevirtual io.vertx.ext.jwt.JWTOptions.getSubject:()Ljava/lang/String;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
pop
23: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.vertx.core.json.JsonObject.encode:()Ljava/lang/String;
invokestatic io.vertx.ext.jwt.JWT.base64urlEncode:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 24: aload 1
invokevirtual io.vertx.core.json.JsonObject.encode:()Ljava/lang/String;
invokestatic io.vertx.ext.jwt.JWT.base64urlEncode:(Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 25: new java.lang.StringBuilder
dup
aload 8
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 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
start local 10 26: aload 4
getstatic io.vertx.ext.jwt.JWT.RND:Ljava/util/Random;
aload 4
invokeinterface java.util.List.size:()I
invokevirtual java.util.Random.nextInt:(I)I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.vertx.ext.jwt.Crypto
aload 10
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokeinterface io.vertx.ext.jwt.Crypto.sign:([B)[B
invokestatic io.vertx.ext.jwt.JWT.base64urlEncode:([B)Ljava/lang/String;
astore 11
start local 11 27: new java.lang.StringBuilder
dup
aload 8
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 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 11 end local 10 end local 9 end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/vertx/ext/jwt/JWT;
0 28 1 payload Lio/vertx/core/json/JsonObject;
0 28 2 options Lio/vertx/ext/jwt/JWTOptions;
1 28 3 algorithm Ljava/lang/String;
2 28 4 cryptos Ljava/util/List<Lio/vertx/ext/jwt/Crypto;>;
9 28 5 header Lio/vertx/core/json/JsonObject;
10 28 6 timestamp J
24 28 8 headerSegment Ljava/lang/String;
25 28 9 payloadSegment Ljava/lang/String;
26 28 10 signingInput Ljava/lang/String;
27 28 11 signSegment Ljava/lang/String;
MethodParameters:
Name Flags
payload
options
private static byte[] base64urlDecode(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.jwt.JWT.decoder:Ljava/util/Base64$Decoder;
aload 0
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.util.Base64$Decoder.decode:([B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str
private static java.lang.String base64urlEncode(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic io.vertx.ext.jwt.JWT.UTF8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokestatic io.vertx.ext.jwt.JWT.base64urlEncode:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str
private static java.lang.String base64urlEncode(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic io.vertx.ext.jwt.JWT.encoder:Ljava/util/Base64$Encoder;
aload 0
invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
MethodParameters:
Name Flags
bytes
public boolean isUnsecure();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/jwt/JWT;
public java.util.Collection<java.lang.String> availableAlgorithms();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.jwt.JWT.cryptoMap:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/jwt/JWT;
Signature: ()Ljava/util/Collection<Ljava/lang/String;>;
private static java.util.List lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k Ljava/lang/String;
private static java.util.List lambda$1(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k Ljava/lang/String;
private static java.util.List lambda$2(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k Ljava/lang/String;
}
SourceFile: "JWT.java"
NestMembers:
io.vertx.ext.jwt.JWT$1
InnerClasses:
io.vertx.ext.jwt.JWT$1
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Decoder = java.util.Base64$Decoder of java.util.Base64
public Encoder = java.util.Base64$Encoder of java.util.Base64