class jdk.internal.net.http.AuthenticationFilter implements jdk.internal.net.http.HeaderFilter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.net.http.AuthenticationFilter
super_class: java.lang.Object
{
volatile jdk.internal.net.http.MultiExchange<?> exchange;
descriptor: Ljdk/internal/net/http/MultiExchange;
flags: (0x0040) ACC_VOLATILE
Signature: Ljdk/internal/net/http/MultiExchange<*>;
private static final java.util.Base64$Encoder encoder;
descriptor: Ljava/util/Base64$Encoder;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final int DEFAULT_RETRY_LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int retry_limit;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int UNAUTHORIZED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 401
static final int PROXY_UNAUTHORIZED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 407
private static final java.lang.String BASIC_DUMMY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.util.WeakHashMap<jdk.internal.net.http.HttpClientImpl, jdk.internal.net.http.AuthenticationFilter$Cache> caches;
descriptor: Ljava/util/WeakHashMap;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/WeakHashMap<Ljdk/internal/net/http/HttpClientImpl;Ljdk/internal/net/http/AuthenticationFilter$Cache;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
putstatic jdk.internal.net.http.AuthenticationFilter.encoder:Ljava/util/Base64$Encoder;
1: ldc "jdk.httpclient.auth.retrylimit"
iconst_3
2: invokestatic jdk.internal.net.http.common.Utils.getIntegerNetProperty:(Ljava/lang/String;I)I
putstatic jdk.internal.net.http.AuthenticationFilter.retry_limit:I
3: new java.lang.StringBuilder
dup
ldc "Basic "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
4: ldc "o:o"
getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: putstatic jdk.internal.net.http.AuthenticationFilter.BASIC_DUMMY:Ljava/lang/String;
7: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putstatic jdk.internal.net.http.AuthenticationFilter.caches:Ljava/util/WeakHashMap;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/AuthenticationFilter;
private java.net.PasswordAuthentication getCredentials(java.lang.String, boolean, jdk.internal.net.http.HttpRequestImpl);
descriptor: (Ljava/lang/String;ZLjdk/internal/net/http/HttpRequestImpl;)Ljava/net/PasswordAuthentication;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
astore 4
start local 4 1: aload 4
invokevirtual jdk.internal.net.http.HttpClientImpl.authenticator:()Ljava/util/Optional;
2: invokedynamic get()Ljava/util/function/Supplier;
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;
jdk/internal/net/http/AuthenticationFilter.lambda$0()Ljava/io/IOException; (6)
()Ljava/io/IOException;
invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast java.net.Authenticator
3: astore 5
start local 5 4: aload 3
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
astore 6
start local 6 5: new jdk.internal.net.http.HeaderParser
dup
aload 1
invokespecial jdk.internal.net.http.HeaderParser.<init>:(Ljava/lang/String;)V
astore 7
start local 7 6: aload 7
iconst_0
invokevirtual jdk.internal.net.http.HeaderParser.findKey:(I)Ljava/lang/String;
astore 8
start local 8 7: aload 7
ldc "realm"
invokevirtual jdk.internal.net.http.HeaderParser.findValue:(Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 8: iload 2
ifeq 9
getstatic java.net.Authenticator$RequestorType.PROXY:Ljava/net/Authenticator$RequestorType;
goto 10
StackMap locals: jdk.internal.net.http.AuthenticationFilter java.lang.String int jdk.internal.net.http.HttpRequestImpl jdk.internal.net.http.HttpClientImpl java.net.Authenticator java.net.URI jdk.internal.net.http.HeaderParser java.lang.String java.lang.String
StackMap stack:
9: getstatic java.net.Authenticator$RequestorType.SERVER:Ljava/net/Authenticator$RequestorType;
StackMap locals:
StackMap stack: java.net.Authenticator$RequestorType
10: astore 10
start local 10 11: aload 0
aload 6
aload 3
invokevirtual jdk.internal.net.http.HttpRequestImpl.method:()Ljava/lang/String;
iload 2
invokevirtual jdk.internal.net.http.AuthenticationFilter.toURL:(Ljava/net/URI;Ljava/lang/String;Z)Ljava/net/URL;
astore 11
start local 11 12: iload 2
ifeq 19
aload 3
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
dup
astore 15
start local 15 13: ifnull 19
14: aload 3
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
astore 15
15: aload 15
invokevirtual java.net.InetSocketAddress.getHostString:()Ljava/lang/String;
astore 12
start local 12 16: aload 15
invokevirtual java.net.InetSocketAddress.getPort:()I
istore 13
start local 13 17: ldc "http"
astore 14
start local 14 18: goto 22
end local 15 end local 14 end local 13 end local 12 19: StackMap locals: java.net.Authenticator$RequestorType java.net.URL
StackMap stack:
aload 6
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
astore 12
start local 12 20: aload 6
invokevirtual java.net.URI.getPort:()I
istore 13
start local 13 21: aload 6
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
astore 14
start local 14 22: StackMap locals: java.lang.String int java.lang.String
StackMap stack:
aload 5
aload 12
23: aconst_null
24: iload 13
25: aload 14
26: aload 9
27: aload 8
28: aload 11
29: aload 10
30: invokevirtual java.net.Authenticator.requestPasswordAuthenticationInstance:(Ljava/lang/String;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/net/Authenticator$RequestorType;)Ljava/net/PasswordAuthentication;
areturn
end local 14 end local 13 end local 12 end local 11 end local 10 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 31 0 this Ljdk/internal/net/http/AuthenticationFilter;
0 31 1 header Ljava/lang/String;
0 31 2 proxy Z
0 31 3 req Ljdk/internal/net/http/HttpRequestImpl;
1 31 4 client Ljdk/internal/net/http/HttpClientImpl;
4 31 5 auth Ljava/net/Authenticator;
5 31 6 uri Ljava/net/URI;
6 31 7 parser Ljdk/internal/net/http/HeaderParser;
7 31 8 authscheme Ljava/lang/String;
8 31 9 realm Ljava/lang/String;
11 31 10 rtype Ljava/net/Authenticator$RequestorType;
12 31 11 url Ljava/net/URL;
16 19 12 host Ljava/lang/String;
20 31 12 host Ljava/lang/String;
17 19 13 port I
21 31 13 port I
18 19 14 protocol Ljava/lang/String;
22 31 14 protocol Ljava/lang/String;
13 19 15 proxyAddress Ljava/net/InetSocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
header
proxy
req
private java.net.URL toURL(java.net.URI, java.lang.String, boolean);
descriptor: (Ljava/net/URI;Ljava/lang/String;Z)Ljava/net/URL;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 3
ldc "CONNECT"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 3
1: ldc "socket"
aload 1
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/AuthenticationFilter;
0 4 1 uri Ljava/net/URI;
0 4 2 method Ljava/lang/String;
0 4 3 proxy Z
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
uri
method
proxy
private java.net.URI getProxyURI(jdk.internal.net.http.HttpRequestImpl);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;)Ljava/net/URI;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.net.InetSocketAddress
StackMap stack:
new java.lang.StringBuilder
dup
ldc "proxy."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 4: new java.net.URI
dup
aload 3
5: aconst_null
6: aload 2
invokevirtual java.net.InetSocketAddress.getHostString:()Ljava/lang/String;
7: aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
8: ldc "/"
9: aconst_null
10: aconst_null
11: invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
12: areturn
13: StackMap locals: jdk.internal.net.http.AuthenticationFilter jdk.internal.net.http.HttpRequestImpl java.net.InetSocketAddress java.lang.String
StackMap stack: java.net.URISyntaxException
astore 4
start local 4 14: new java.lang.InternalError
dup
aload 4
invokespecial java.lang.InternalError.<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 15 0 this Ljdk/internal/net/http/AuthenticationFilter;
0 15 1 r Ljdk/internal/net/http/HttpRequestImpl;
1 15 2 proxy Ljava/net/InetSocketAddress;
4 15 3 scheme Ljava/lang/String;
14 15 4 e Ljava/net/URISyntaxException;
Exception table:
from to target type
4 12 13 Class java.net.URISyntaxException
MethodParameters:
Name Flags
r
public void request(jdk.internal.net.http.HttpRequestImpl, jdk.internal.net.http.MultiExchange<?>);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic jdk.internal.net.http.AuthenticationFilter.getCache:(Ljdk/internal/net/http/MultiExchange;)Ljdk/internal/net/http/AuthenticationFilter$Cache;
astore 3
start local 3 1: aload 0
aload 2
putfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
2: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
ifnonnull 9
3: aload 0
aload 1
invokevirtual jdk.internal.net.http.AuthenticationFilter.getProxyURI:(Ljdk/internal/net/http/HttpRequestImpl;)Ljava/net/URI;
astore 4
start local 4 4: aload 4
ifnull 9
5: aload 3
aload 4
iconst_1
invokevirtual jdk.internal.net.http.AuthenticationFilter$Cache.get:(Ljava/net/URI;Z)Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;
astore 5
start local 5 6: aload 5
ifnull 9
7: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
new jdk.internal.net.http.AuthenticationFilter$AuthInfo
dup
iconst_1
aload 5
getfield jdk.internal.net.http.AuthenticationFilter$CacheEntry.scheme:Ljava/lang/String;
aconst_null
aload 5
invokespecial jdk.internal.net.http.AuthenticationFilter$AuthInfo.<init>:(ZLjava/lang/String;Ljava/net/PasswordAuthentication;Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;)V
putfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
8: aload 1
iconst_1
aload 5
getfield jdk.internal.net.http.AuthenticationFilter$CacheEntry.value:Ljava/net/PasswordAuthentication;
invokestatic jdk.internal.net.http.AuthenticationFilter.addBasicCredentials:(Ljdk/internal/net/http/HttpRequestImpl;ZLjava/net/PasswordAuthentication;)V
end local 5 end local 4 9: StackMap locals: jdk.internal.net.http.AuthenticationFilter$Cache
StackMap stack:
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
ifnonnull 14
10: aload 3
aload 1
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
iconst_0
invokevirtual jdk.internal.net.http.AuthenticationFilter$Cache.get:(Ljava/net/URI;Z)Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;
astore 4
start local 4 11: aload 4
ifnull 14
12: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
new jdk.internal.net.http.AuthenticationFilter$AuthInfo
dup
iconst_1
aload 4
getfield jdk.internal.net.http.AuthenticationFilter$CacheEntry.scheme:Ljava/lang/String;
aconst_null
aload 4
invokespecial jdk.internal.net.http.AuthenticationFilter$AuthInfo.<init>:(ZLjava/lang/String;Ljava/net/PasswordAuthentication;Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;)V
putfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
13: aload 1
iconst_0
aload 4
getfield jdk.internal.net.http.AuthenticationFilter$CacheEntry.value:Ljava/net/PasswordAuthentication;
invokestatic jdk.internal.net.http.AuthenticationFilter.addBasicCredentials:(Ljdk/internal/net/http/HttpRequestImpl;ZLjava/net/PasswordAuthentication;)V
end local 4 14: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/internal/net/http/AuthenticationFilter;
0 15 1 r Ljdk/internal/net/http/HttpRequestImpl;
0 15 2 e Ljdk/internal/net/http/MultiExchange<*>;
1 15 3 cache Ljdk/internal/net/http/AuthenticationFilter$Cache;
4 9 4 proxyURI Ljava/net/URI;
6 9 5 ca Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;
11 14 4 ca Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;
Exceptions:
throws java.io.IOException
Signature: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange<*>;)V
MethodParameters:
Name Flags
r
e
private static void addBasicCredentials(jdk.internal.net.http.HttpRequestImpl, boolean, java.net.PasswordAuthentication);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;ZLjava/net/PasswordAuthentication;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 1
ldc "Proxy-Authorization"
goto 2
StackMap locals:
StackMap stack:
1: ldc "Authorization"
StackMap locals:
StackMap stack: java.lang.String
2: astore 3
start local 3 3: new java.lang.StringBuilder
dup
sipush 128
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 4: aload 4
aload 2
invokevirtual java.net.PasswordAuthentication.getUserName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.net.PasswordAuthentication.getPassword:()[C
invokevirtual java.lang.StringBuilder.append:([C)Ljava/lang/StringBuilder;
pop
5: getstatic jdk.internal.net.http.AuthenticationFilter.encoder:Ljava/util/Base64$Encoder;
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
astore 5
start local 5 6: new java.lang.StringBuilder
dup
ldc "Basic "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 7: iload 1
ifeq 16
8: aload 0
invokevirtual jdk.internal.net.http.HttpRequestImpl.isConnect:()Z
ifeq 12
9: getstatic jdk.internal.net.http.common.Utils.PROXY_TUNNEL_FILTER:Ljava/util/function/BiPredicate;
aload 3
aload 6
invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 16
10: ldc "{0} disabled"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
11: return
12: StackMap locals: jdk.internal.net.http.HttpRequestImpl int java.net.PasswordAuthentication java.lang.String java.lang.StringBuilder java.lang.String java.lang.String
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
ifnull 16
13: getstatic jdk.internal.net.http.common.Utils.PROXY_FILTER:Ljava/util/function/BiPredicate;
aload 3
aload 6
invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 16
14: ldc "{0} disabled"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
15: return
16: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 6
invokevirtual jdk.internal.net.http.HttpRequestImpl.setSystemHeader:(Ljava/lang/String;Ljava/lang/String;)V
17: return
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 18 0 r Ljdk/internal/net/http/HttpRequestImpl;
0 18 1 proxy Z
0 18 2 pw Ljava/net/PasswordAuthentication;
3 18 3 hdrname Ljava/lang/String;
4 18 4 sb Ljava/lang/StringBuilder;
6 18 5 s Ljava/lang/String;
7 18 6 value Ljava/lang/String;
MethodParameters:
Name Flags
r
proxy
pw
public jdk.internal.net.http.HttpRequestImpl response(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/HttpRequestImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=14, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
invokestatic jdk.internal.net.http.AuthenticationFilter.getCache:(Ljdk/internal/net/http/MultiExchange;)Ljdk/internal/net/http/AuthenticationFilter$Cache;
astore 2
start local 2 1: aload 1
invokevirtual jdk.internal.net.http.Response.statusCode:()I
istore 3
start local 3 2: aload 1
invokevirtual jdk.internal.net.http.Response.headers:()Ljava/net/http/HttpHeaders;
astore 4
start local 4 3: aload 1
invokevirtual jdk.internal.net.http.Response.request:()Ljdk/internal/net/http/HttpRequestImpl;
astore 5
start local 5 4: iload 3
sipush 401
if_icmpeq 14
iload 3
sipush 407
if_icmpeq 14
5: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
ifnull 8
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.fromcache:Z
ifne 8
6: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
astore 6
start local 6 7: aload 2
aload 6
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.scheme:Ljava/lang/String;
aload 5
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
iconst_0
aload 6
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.credentials:Ljava/net/PasswordAuthentication;
invokevirtual jdk.internal.net.http.AuthenticationFilter$Cache.store:(Ljava/lang/String;Ljava/net/URI;ZLjava/net/PasswordAuthentication;)V
end local 6 8: StackMap locals: jdk.internal.net.http.AuthenticationFilter jdk.internal.net.http.Response jdk.internal.net.http.AuthenticationFilter$Cache int java.net.http.HttpHeaders jdk.internal.net.http.HttpRequestImpl
StackMap stack:
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
ifnull 13
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.fromcache:Z
ifne 13
9: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
astore 6
start local 6 10: aload 0
aload 5
invokevirtual jdk.internal.net.http.AuthenticationFilter.getProxyURI:(Ljdk/internal/net/http/HttpRequestImpl;)Ljava/net/URI;
astore 7
start local 7 11: aload 7
ifnull 13
12: aload 2
aload 6
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.scheme:Ljava/lang/String;
aload 7
iconst_1
aload 6
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.credentials:Ljava/net/PasswordAuthentication;
invokevirtual jdk.internal.net.http.AuthenticationFilter$Cache.store:(Ljava/lang/String;Ljava/net/URI;ZLjava/net/PasswordAuthentication;)V
end local 7 end local 6 13: StackMap locals:
StackMap stack:
aconst_null
areturn
14: StackMap locals:
StackMap stack:
iload 3
sipush 407
if_icmpne 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 6
start local 6 17: iload 6
ifeq 18
ldc "Proxy-Authenticate"
goto 19
StackMap locals: int
StackMap stack:
18: ldc "WWW-Authenticate"
StackMap locals:
StackMap stack: java.lang.String
19: astore 7
start local 7 20: aload 4
aload 7
invokevirtual java.net.http.HttpHeaders.allValues:(Ljava/lang/String;)Ljava/util/List;
astore 8
start local 8 21: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifeq 23
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.authenticator:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 23
22: new java.io.IOException
dup
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " header missing for response code "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals: java.lang.String java.util.List
StackMap stack:
aconst_null
astore 9
start local 9 24: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 31
StackMap locals: jdk.internal.net.http.AuthenticationFilter jdk.internal.net.http.Response jdk.internal.net.http.AuthenticationFilter$Cache int java.net.http.HttpHeaders jdk.internal.net.http.HttpRequestImpl int java.lang.String java.util.List java.lang.String top java.util.Iterator
StackMap stack:
25: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 26: new jdk.internal.net.http.HeaderParser
dup
aload 10
invokespecial jdk.internal.net.http.HeaderParser.<init>:(Ljava/lang/String;)V
astore 12
start local 12 27: aload 12
iconst_0
invokevirtual jdk.internal.net.http.HeaderParser.findKey:(I)Ljava/lang/String;
astore 13
start local 13 28: aload 13
ldc "Basic"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 31
29: aload 10
astore 9
30: goto 32
end local 13 end local 12 end local 10 31: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
32: StackMap locals: jdk.internal.net.http.AuthenticationFilter jdk.internal.net.http.Response jdk.internal.net.http.AuthenticationFilter$Cache int java.net.http.HttpHeaders jdk.internal.net.http.HttpRequestImpl int java.lang.String java.util.List java.lang.String
StackMap stack:
aload 9
ifnonnull 34
33: aconst_null
areturn
34: StackMap locals:
StackMap stack:
iload 6
ifeq 45
35: aload 1
getfield jdk.internal.net.http.Response.isConnectResponse:Z
ifeq 40
36: getstatic jdk.internal.net.http.common.Utils.PROXY_TUNNEL_FILTER:Ljava/util/function/BiPredicate;
37: ldc "Proxy-Authorization"
getstatic jdk.internal.net.http.AuthenticationFilter.BASIC_DUMMY:Ljava/lang/String;
invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 45
38: ldc "{0} disabled"
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Proxy-Authorization"
aastore
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
39: aconst_null
areturn
40: StackMap locals:
StackMap stack:
aload 5
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
ifnull 45
41: getstatic jdk.internal.net.http.common.Utils.PROXY_FILTER:Ljava/util/function/BiPredicate;
42: ldc "Proxy-Authorization"
getstatic jdk.internal.net.http.AuthenticationFilter.BASIC_DUMMY:Ljava/lang/String;
invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 45
43: ldc "{0} disabled"
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Proxy-Authorization"
aastore
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
44: aconst_null
areturn
45: StackMap locals:
StackMap stack:
iload 6
ifeq 46
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
goto 47
StackMap locals:
StackMap stack:
46: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
getfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
StackMap locals:
StackMap stack: jdk.internal.net.http.AuthenticationFilter$AuthInfo
47: astore 10
start local 10 48: aload 10
ifnonnull 61
49: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.authenticator:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifne 50
aconst_null
areturn
50: StackMap locals: jdk.internal.net.http.AuthenticationFilter$AuthInfo
StackMap stack:
aload 0
aload 9
iload 6
aload 5
invokevirtual jdk.internal.net.http.AuthenticationFilter.getCredentials:(Ljava/lang/String;ZLjdk/internal/net/http/HttpRequestImpl;)Ljava/net/PasswordAuthentication;
astore 11
start local 11 51: aload 11
ifnonnull 53
52: new java.io.IOException
dup
ldc "No credentials provided"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals: java.net.PasswordAuthentication
StackMap stack:
new jdk.internal.net.http.AuthenticationFilter$AuthInfo
dup
iconst_0
ldc "Basic"
aload 11
invokespecial jdk.internal.net.http.AuthenticationFilter$AuthInfo.<init>:(ZLjava/lang/String;Ljava/net/PasswordAuthentication;)V
astore 10
54: iload 6
ifeq 57
55: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
aload 10
putfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
56: goto 58
57: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
aload 10
putfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
58: StackMap locals:
StackMap stack:
aload 5
invokestatic jdk.internal.net.http.HttpRequestImpl.newInstanceForAuthentication:(Ljdk/internal/net/http/HttpRequestImpl;)Ljdk/internal/net/http/HttpRequestImpl;
astore 5
59: aload 5
iload 6
aload 11
invokestatic jdk.internal.net.http.AuthenticationFilter.addBasicCredentials:(Ljdk/internal/net/http/HttpRequestImpl;ZLjava/net/PasswordAuthentication;)V
60: aload 5
areturn
end local 11 61: StackMap locals:
StackMap stack:
aload 10
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.retries:I
getstatic jdk.internal.net.http.AuthenticationFilter.retry_limit:I
if_icmple 65
62: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "too many authentication attempts. Limit: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
63: getstatic jdk.internal.net.http.AuthenticationFilter.retry_limit:I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
64: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
65: StackMap locals:
StackMap stack:
aload 10
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.fromcache:Z
ifeq 67
66: aload 2
aload 10
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.cacheEntry:Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;
invokevirtual jdk.internal.net.http.AuthenticationFilter$Cache.remove:(Ljdk/internal/net/http/AuthenticationFilter$CacheEntry;)V
67: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.authenticator:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifne 68
aconst_null
areturn
68: StackMap locals:
StackMap stack:
aload 0
aload 9
iload 6
aload 5
invokevirtual jdk.internal.net.http.AuthenticationFilter.getCredentials:(Ljava/lang/String;ZLjdk/internal/net/http/HttpRequestImpl;)Ljava/net/PasswordAuthentication;
astore 11
start local 11 69: aload 11
ifnonnull 71
70: new java.io.IOException
dup
ldc "No credentials provided"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
71: StackMap locals: java.net.PasswordAuthentication
StackMap stack:
aload 10
aload 11
invokevirtual jdk.internal.net.http.AuthenticationFilter$AuthInfo.retryWithCredentials:(Ljava/net/PasswordAuthentication;)Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
astore 10
72: iload 6
ifeq 75
73: aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
aload 10
putfield jdk.internal.net.http.MultiExchange.proxyauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
74: goto 76
75: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.AuthenticationFilter.exchange:Ljdk/internal/net/http/MultiExchange;
aload 10
putfield jdk.internal.net.http.MultiExchange.serverauth:Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
76: StackMap locals:
StackMap stack:
aload 5
invokestatic jdk.internal.net.http.HttpRequestImpl.newInstanceForAuthentication:(Ljdk/internal/net/http/HttpRequestImpl;)Ljdk/internal/net/http/HttpRequestImpl;
astore 5
77: aload 5
iload 6
aload 10
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.credentials:Ljava/net/PasswordAuthentication;
invokestatic jdk.internal.net.http.AuthenticationFilter.addBasicCredentials:(Ljdk/internal/net/http/HttpRequestImpl;ZLjava/net/PasswordAuthentication;)V
78: aload 10
dup
getfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.retries:I
iconst_1
iadd
putfield jdk.internal.net.http.AuthenticationFilter$AuthInfo.retries:I
79: aload 5
areturn
end local 11 end local 10 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 80 0 this Ljdk/internal/net/http/AuthenticationFilter;
0 80 1 r Ljdk/internal/net/http/Response;
1 80 2 cache Ljdk/internal/net/http/AuthenticationFilter$Cache;
2 80 3 status I
3 80 4 hdrs Ljava/net/http/HttpHeaders;
4 80 5 req Ljdk/internal/net/http/HttpRequestImpl;
7 8 6 au Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
10 13 6 au Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
11 13 7 proxyURI Ljava/net/URI;
17 80 6 proxy Z
20 80 7 authname Ljava/lang/String;
21 80 8 authvals Ljava/util/List<Ljava/lang/String;>;
24 80 9 authval Ljava/lang/String;
26 31 10 aval Ljava/lang/String;
27 31 12 parser Ljdk/internal/net/http/HeaderParser;
28 31 13 scheme Ljava/lang/String;
48 80 10 au Ljdk/internal/net/http/AuthenticationFilter$AuthInfo;
51 61 11 pw Ljava/net/PasswordAuthentication;
69 80 11 pw Ljava/net/PasswordAuthentication;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
r
static synchronized jdk.internal.net.http.AuthenticationFilter$Cache getCache(jdk.internal.net.http.MultiExchange<?>);
descriptor: (Ljdk/internal/net/http/MultiExchange;)Ljdk/internal/net/http/AuthenticationFilter$Cache;
flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
astore 1
start local 1 1: getstatic jdk.internal.net.http.AuthenticationFilter.caches:Ljava/util/WeakHashMap;
aload 1
invokevirtual java.util.WeakHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.net.http.AuthenticationFilter$Cache
astore 2
start local 2 2: aload 2
ifnonnull 5
3: new jdk.internal.net.http.AuthenticationFilter$Cache
dup
invokespecial jdk.internal.net.http.AuthenticationFilter$Cache.<init>:()V
astore 2
4: getstatic jdk.internal.net.http.AuthenticationFilter.caches:Ljava/util/WeakHashMap;
aload 1
aload 2
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: jdk.internal.net.http.HttpClientImpl jdk.internal.net.http.AuthenticationFilter$Cache
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 exchange Ljdk/internal/net/http/MultiExchange<*>;
1 6 1 client Ljdk/internal/net/http/HttpClientImpl;
2 6 2 c Ljdk/internal/net/http/AuthenticationFilter$Cache;
Signature: (Ljdk/internal/net/http/MultiExchange<*>;)Ljdk/internal/net/http/AuthenticationFilter$Cache;
MethodParameters:
Name Flags
exchange
static java.net.URI normalize(java.net.URI, boolean);
descriptor: (Ljava/net/URI;Z)Ljava/net/URI;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.URI.getPath:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 6
2: StackMap locals: java.lang.String
StackMap stack:
new java.net.URI
dup
aload 0
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
aload 0
invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
ldc "/"
aconst_null
aconst_null
invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
3: areturn
4: StackMap locals:
StackMap stack: java.net.URISyntaxException
astore 3
start local 3 5: new java.lang.InternalError
dup
aload 3
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 6: StackMap locals:
StackMap stack:
iload 1
ifne 7
ldc "/"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
7: StackMap locals:
StackMap stack:
aload 0
ldc "."
invokevirtual java.net.URI.resolve:(Ljava/lang/String;)Ljava/net/URI;
areturn
8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 uri Ljava/net/URI;
0 9 1 isPrimaryKey Z
1 9 2 path Ljava/lang/String;
5 6 3 e Ljava/net/URISyntaxException;
Exception table:
from to target type
2 3 4 Class java.net.URISyntaxException
MethodParameters:
Name Flags
uri
isPrimaryKey
private static java.io.IOException lambda$0();
descriptor: ()Ljava/io/IOException;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=0, args_size=0
0: new java.io.IOException
dup
ldc "No authenticator set"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "AuthenticationFilter.java"
NestMembers:
jdk.internal.net.http.AuthenticationFilter$AuthInfo jdk.internal.net.http.AuthenticationFilter$Cache jdk.internal.net.http.AuthenticationFilter$CacheEntry
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final RequestorType = java.net.Authenticator$RequestorType of java.net.Authenticator
public Encoder = java.util.Base64$Encoder of java.util.Base64
AuthInfo = jdk.internal.net.http.AuthenticationFilter$AuthInfo of jdk.internal.net.http.AuthenticationFilter
final Cache = jdk.internal.net.http.AuthenticationFilter$Cache of jdk.internal.net.http.AuthenticationFilter
final CacheEntry = jdk.internal.net.http.AuthenticationFilter$CacheEntry of jdk.internal.net.http.AuthenticationFilter