public interface io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth
minor version: 0
major version: 59
flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
this_class: io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth
super_class: java.lang.Object
{
public static void discover(io.vertx.core.Vertx, io.vertx.ext.auth.oauth2.OAuth2Options, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.auth.oauth2.OAuth2Auth>>);
descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Handler;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getSite:()Ljava/lang/String;
ifnonnull 3
1: aload 2
ldc "issuer cannot be null"
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.replaceVariables:(Z)V
4: new io.vertx.ext.auth.impl.http.SimpleHttpClient
dup
5: aload 0
6: aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getUserAgent:()Ljava/lang/String;
7: aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getHttpClientOptions:()Lio/vertx/core/http/HttpClientOptions;
8: invokespecial io.vertx.ext.auth.impl.http.SimpleHttpClient.<init>:(Lio/vertx/core/Vertx;Ljava/lang/String;Lio/vertx/core/http/HttpClientOptions;)V
astore 3
start local 3 9: aload 3
10: getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
11: new java.lang.StringBuilder
dup
aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getSite:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/.well-known/openid-configuration"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
13: ldc "Accept"
ldc "application/json"
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
14: aconst_null
15: aload 2
aload 1
aload 0
invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Vertx;)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/auth/oauth2/providers/OpenIDConnectAuth.lambda$0(Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Vertx;Lio/vertx/core/AsyncResult;)V (6 itf)
(Lio/vertx/core/AsyncResult;)V
16: invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpClient.fetch:(Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/impl/http/SimpleHttpClient;
pop
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 vertx Lio/vertx/core/Vertx;
0 18 1 config Lio/vertx/ext/auth/oauth2/OAuth2Options;
0 18 2 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;>;
9 18 3 httpClient Lio/vertx/ext/auth/impl/http/SimpleHttpClient;
Signature: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;>;)V
MethodParameters:
Name Flags
vertx final
config final
handler final
public static io.vertx.core.Future<io.vertx.ext.auth.oauth2.OAuth2Auth> discover(io.vertx.core.Vertx, io.vertx.ext.auth.oauth2.OAuth2Options);
descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;)Lio/vertx/core/Future;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
astore 2
start local 2 1: aload 0
aload 1
aload 2
invokestatic io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth.discover:(Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Handler;)V
2: aload 2
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 vertx Lio/vertx/core/Vertx;
0 3 1 config Lio/vertx/ext/auth/oauth2/OAuth2Options;
1 3 2 promise Lio/vertx/core/Promise<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;
Signature: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;)Lio/vertx/core/Future<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;
MethodParameters:
Name Flags
vertx final
config final
private static void lambda$0(io.vertx.core.Handler, io.vertx.ext.auth.oauth2.OAuth2Options, io.vertx.core.Vertx, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Options;Lio/vertx/core/Vertx;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=7, args_size=4
start local 3 0: aload 3
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
aload 3
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.ext.auth.impl.http.SimpleHttpResponse
astore 4
start local 4 4: aload 4
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.statusCode:()I
sipush 200
if_icmpeq 7
5: aload 0
new java.lang.StringBuilder
dup
ldc "Bad Response ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.statusCode:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.body:()Lio/vertx/core/buffer/Buffer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
6: return
7: StackMap locals: io.vertx.ext.auth.impl.http.SimpleHttpResponse
StackMap stack:
aload 4
ldc "application/json"
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.is:(Ljava/lang/String;)Z
ifne 10
8: aload 0
new java.lang.StringBuilder
dup
ldc "Cannot handle Content-Type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.headers:()Lio/vertx/core/MultiMap;
ldc "Content-Type"
invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
9: return
10: StackMap locals:
StackMap stack:
aload 4
invokevirtual io.vertx.ext.auth.impl.http.SimpleHttpResponse.jsonObject:()Lio/vertx/core/json/JsonObject;
astore 5
start local 5 11: aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.isValidateIssuer:()Z
ifeq 19
12: aload 5
ldc "issuer"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 13: aload 6
ifnull 19
14: aload 6
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 16
15: aload 6
iconst_0
aload 6
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 6
16: StackMap locals: io.vertx.core.json.JsonObject java.lang.String
StackMap stack:
aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getSite:()Ljava/lang/String;
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
17: aload 0
new java.lang.StringBuilder
dup
ldc "issuer validation failed: received ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
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;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
18: return
end local 6 19: StackMap locals:
StackMap stack:
aload 1
aload 5
ldc "authorization_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setAuthorizationPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
20: aload 1
aload 5
ldc "token_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setTokenPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
21: aload 1
aload 5
ldc "end_session_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setLogoutPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
22: aload 1
aload 5
ldc "revocation_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setRevocationPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
23: aload 1
aload 5
ldc "userinfo_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setUserInfoPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
24: aload 1
aload 5
ldc "jwks_uri"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setJwkPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
25: aload 1
aload 5
ldc "introspection_endpoint"
invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.setIntrospectionPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Options;
pop
26: aload 2
aload 1
invokestatic io.vertx.ext.auth.oauth2.OAuth2Auth.create:(Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2Options;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
astore 6
start local 6 27: aload 1
invokevirtual io.vertx.ext.auth.oauth2.OAuth2Options.getJwkPath:()Ljava/lang/String;
ifnull 30
28: aload 6
aload 0
aload 6
invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Auth;)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/auth/oauth2/providers/OpenIDConnectAuth.lambda$1(Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Auth;Lio/vertx/core/AsyncResult;)V (6 itf)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.ext.auth.oauth2.OAuth2Auth.jWKSet:(Lio/vertx/core/Handler;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
pop
29: goto 34
30: StackMap locals: io.vertx.ext.auth.oauth2.OAuth2Auth
StackMap stack:
aload 0
aload 6
invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 6 31: goto 34
StackMap locals: io.vertx.core.Handler io.vertx.ext.auth.oauth2.OAuth2Options io.vertx.core.Vertx io.vertx.core.AsyncResult io.vertx.ext.auth.impl.http.SimpleHttpResponse io.vertx.core.json.JsonObject
StackMap stack: java.lang.RuntimeException
32: astore 6
start local 6 33: aload 0
aload 6
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 6 end local 5 end local 4 34: StackMap locals:
StackMap stack:
return
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 35 3 fetch Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/impl/http/SimpleHttpResponse;>;
4 34 4 response Lio/vertx/ext/auth/impl/http/SimpleHttpResponse;
11 34 5 json Lio/vertx/core/json/JsonObject;
13 19 6 issuerEndpoint Ljava/lang/String;
27 31 6 oidc Lio/vertx/ext/auth/oauth2/OAuth2Auth;
33 34 6 e Ljava/lang/RuntimeException;
Exception table:
from to target type
26 31 32 Class java.lang.IllegalArgumentException
26 31 32 Class java.lang.IllegalStateException
private static void lambda$1(io.vertx.core.Handler, io.vertx.ext.auth.oauth2.OAuth2Auth, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Handler;Lio/vertx/ext/auth/oauth2/OAuth2Auth;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 3
1: aload 0
aload 2
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
4: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 5 2 v Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
}
SourceFile: "OpenIDConnectAuth.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
RuntimeVisibleAnnotations:
io.vertx.codegen.annotations.VertxGen()