class com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy implements com.azure.core.http.policy.HttpPipelinePolicy
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy
super_class: java.lang.Object
{
private static final java.lang.String WWW_AUTHENTICATE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "WWW-Authenticate"
private static final java.lang.String BEARER_TOKEN_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Bearer "
private static final java.lang.String AUTHORIZATION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "Authorization"
private final com.microsoft.sqlserver.jdbc.ScopeTokenCache cache;
descriptor: Lcom/microsoft/sqlserver/jdbc/ScopeTokenCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential keyVaultTokenCredential;
descriptor: Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential);
descriptor: (Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 5
2: new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Credential"
aastore
astore 3
start local 3 4: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 2
aload 3
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 5: StackMap locals: com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential
StackMap stack:
aload 0
new com.microsoft.sqlserver.jdbc.ScopeTokenCache
dup
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;)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;
com/microsoft/sqlserver/jdbc/KeyVaultTokenCredential.getToken(Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono; (5)
(Lcom/azure/core/credential/TokenRequestContext;)Lreactor/core/publisher/Mono;
invokespecial com.microsoft.sqlserver.jdbc.ScopeTokenCache.<init>:(Ljava/util/function/Function;)V
putfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.cache:Lcom/microsoft/sqlserver/jdbc/ScopeTokenCache;
6: aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy;
0 8 1 credential Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
3 5 2 form Ljava/text/MessageFormat;
4 5 3 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
credential
public reactor.core.publisher.Mono<com.azure.core.http.HttpResponse> process(com.azure.core.http.HttpPipelineCallContext, com.azure.core.http.HttpPipelineNextPolicy);
descriptor: (Lcom/azure/core/http/HttpPipelineCallContext;Lcom/azure/core/http/HttpPipelineNextPolicy;)Lreactor/core/publisher/Mono;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc "https"
aload 1
invokevirtual com.azure.core.http.HttpPipelineCallContext.getHttpRequest:()Lcom/azure/core/http/HttpRequest;
invokevirtual com.azure.core.http.HttpRequest.getUrl:()Ljava/net/URL;
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 2
1: new java.lang.RuntimeException
dup
ldc "R_TokenRequireUrl"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
invokestatic reactor.core.publisher.Mono.error:(Ljava/lang/Throwable;)Lreactor/core/publisher/Mono;
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.azure.core.http.HttpPipelineNextPolicy.clone:()Lcom/azure/core/http/HttpPipelineNextPolicy;
invokevirtual com.azure.core.http.HttpPipelineNextPolicy.process:()Lreactor/core/publisher/Mono;
3: invokedynamic accept()Ljava/util/function/Consumer;
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
com/azure/core/http/HttpResponse.close()V (5)
(Lcom/azure/core/http/HttpResponse;)V
invokevirtual reactor.core.publisher.Mono.doOnNext:(Ljava/util/function/Consumer;)Lreactor/core/publisher/Mono;
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;
com/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy.lambda$2(Lcom/azure/core/http/HttpResponse;)Ljava/lang/String; (6)
(Lcom/azure/core/http/HttpResponse;)Ljava/lang/String;
invokevirtual reactor.core.publisher.Mono.map:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
4: 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;
com/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy.lambda$3(Ljava/lang/String;)Ljava/util/Map; (6)
(Ljava/lang/String;)Ljava/util/Map;
invokevirtual reactor.core.publisher.Mono.map:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
aload 0
invokedynamic apply(Lcom/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy;)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;
com/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy.lambda$4(Ljava/util/Map;)Lreactor/core/publisher/Mono; (7)
(Ljava/util/Map;)Lreactor/core/publisher/Mono;
invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
5: aload 1
aload 2
invokedynamic apply(Lcom/azure/core/http/HttpPipelineCallContext;Lcom/azure/core/http/HttpPipelineNextPolicy;)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;
com/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy.lambda$5(Lcom/azure/core/http/HttpPipelineCallContext;Lcom/azure/core/http/HttpPipelineNextPolicy;Lcom/azure/core/credential/AccessToken;)Lreactor/core/publisher/Mono; (6)
(Lcom/azure/core/credential/AccessToken;)Lreactor/core/publisher/Mono;
invokevirtual reactor.core.publisher.Mono.flatMap:(Ljava/util/function/Function;)Lreactor/core/publisher/Mono;
6: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy;
0 7 1 context Lcom/azure/core/http/HttpPipelineCallContext;
0 7 2 next Lcom/azure/core/http/HttpPipelineNextPolicy;
Signature: (Lcom/azure/core/http/HttpPipelineCallContext;Lcom/azure/core/http/HttpPipelineNextPolicy;)Lreactor/core/publisher/Mono<Lcom/azure/core/http/HttpResponse;>;
MethodParameters:
Name Flags
context
next
private static java.util.Map<java.lang.String, java.lang.String> extractChallenge(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.isValidChallenge:(Ljava/lang/String;Ljava/lang/String;)Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
3: aload 1
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
4: astore 0
5: aload 0
ldc ", "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 6: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 7: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 12
StackMap locals: java.lang.String java.lang.String java.lang.String[] java.util.Map top int int java.lang.String[]
StackMap stack:
8: aload 7
iload 5
aaload
astore 4
start local 4 9: aload 4
ldc "="
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 8
start local 8 10: aload 3
aload 8
iconst_0
aaload
ldc "\""
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
aload 8
iconst_1
aaload
ldc "\""
ldc ""
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 4 11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 6
if_icmplt 8
13: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 authenticateHeader Ljava/lang/String;
0 14 1 authChallengePrefix Ljava/lang/String;
6 14 2 challenges [Ljava/lang/String;
7 14 3 challengeMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
9 11 4 pair Ljava/lang/String;
10 11 8 keyValue [Ljava/lang/String;
Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
authenticateHeader
authChallengePrefix
private static boolean isValidChallenge(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.azure.core.util.CoreUtils.isNullOrEmpty:(Ljava/lang/CharSequence;)Z
ifne 3
aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
1: aload 1
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
2: iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 authenticateHeader Ljava/lang/String;
0 4 1 authChallengePrefix Ljava/lang/String;
MethodParameters:
Name Flags
authenticateHeader
authChallengePrefix
private static java.lang.String lambda$2(com.azure.core.http.HttpResponse);
descriptor: (Lcom/azure/core/http/HttpResponse;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "WWW-Authenticate"
invokevirtual com.azure.core.http.HttpResponse.getHeaderValue:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 res Lcom/azure/core/http/HttpResponse;
private static java.util.Map lambda$3(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Map;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "Bearer "
invokestatic com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.extractChallenge:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 header Ljava/lang/String;
private reactor.core.publisher.Mono lambda$4(java.util.Map);
descriptor: (Ljava/util/Map;)Lreactor/core/publisher/Mono;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=9, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
aload 1
ldc "authorization"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.setAuthorization:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
pop
1: aload 0
getfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
aload 1
ldc "resource"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.setResource:(Ljava/lang/String;)V
2: aload 0
getfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
aload 1
ldc "scope"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.setScope:(Ljava/lang/String;)V
3: aload 0
getfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.cache:Lcom/microsoft/sqlserver/jdbc/ScopeTokenCache;
new com.azure.core.credential.TokenRequestContext
dup
invokespecial com.azure.core.credential.TokenRequestContext.<init>:()V
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
aload 1
ldc "resource"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/.default"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual com.azure.core.credential.TokenRequestContext.addScopes:([Ljava/lang/String;)Lcom/azure/core/credential/TokenRequestContext;
invokevirtual com.microsoft.sqlserver.jdbc.ScopeTokenCache.setRequest:(Lcom/azure/core/credential/TokenRequestContext;)V
4: aload 0
getfield com.microsoft.sqlserver.jdbc.KeyVaultCustomCredentialPolicy.cache:Lcom/microsoft/sqlserver/jdbc/ScopeTokenCache;
invokevirtual com.microsoft.sqlserver.jdbc.ScopeTokenCache.getToken:()Lreactor/core/publisher/Mono;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/microsoft/sqlserver/jdbc/KeyVaultCustomCredentialPolicy;
0 5 1 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private static reactor.core.publisher.Mono lambda$5(com.azure.core.http.HttpPipelineCallContext, com.azure.core.http.HttpPipelineNextPolicy, com.azure.core.credential.AccessToken);
descriptor: (Lcom/azure/core/http/HttpPipelineCallContext;Lcom/azure/core/http/HttpPipelineNextPolicy;Lcom/azure/core/credential/AccessToken;)Lreactor/core/publisher/Mono;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 2 0: aload 0
invokevirtual com.azure.core.http.HttpPipelineCallContext.getHttpRequest:()Lcom/azure/core/http/HttpRequest;
ldc "Authorization"
new java.lang.StringBuilder
dup
ldc "Bearer "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual com.azure.core.credential.AccessToken.getToken:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.azure.core.http.HttpRequest.setHeader:(Ljava/lang/String;Ljava/lang/String;)Lcom/azure/core/http/HttpRequest;
pop
1: aload 1
invokevirtual com.azure.core.http.HttpPipelineNextPolicy.process:()Lreactor/core/publisher/Mono;
areturn
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 token Lcom/azure/core/credential/AccessToken;
}
SourceFile: "KeyVaultCustomCredentialPolicy.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles