public class io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor extends java.lang.Object implements io.fabric.kubernetes.client.http.Interceptor
{
private static final java.lang.String AUTHORIZATION;
private static final java.lang.String LOCATION;
private static final java.lang.String AUTHORIZATION_SERVER_PATH;
private static final java.lang.String AUTHORIZE_QUERY;
private static final java.lang.String BEFORE_TOKEN;
private static final java.lang.String AFTER_TOKEN;
private static final java.util.Set RETRIABLE_RESOURCES;
private final io.fabric.kubernetes.client.http.HttpClient client;
private final io.fabric.openshift.client.OpenShiftConfig config;
private final java.util.concurrent.atomic.AtomicReference oauthToken;
public void <init>(io.fabric.kubernetes.client.http.HttpClient, io.fabric.openshift.client.OpenShiftConfig)
{
io.fabric.openshift.client.OpenShiftConfig v;
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.util.concurrent.atomic.AtomicReference v;
io.fabric.kubernetes.client.http.HttpClient v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.HttpClient;
v := @parameter: io.fabric.openshift.client.OpenShiftConfig;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken> = v;
v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.kubernetes.client.http.HttpClient client> = v;
v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.client.OpenShiftConfig config> = v;
return;
}
public void before(io.fabric.kubernetes.client.http.BasicBuilder, io.fabric.kubernetes.client.http.HttpHeaders)
{
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.util.concurrent.atomic.AtomicReference v;
java.util.List v, v;
io.fabric.kubernetes.client.http.HttpHeaders v;
java.lang.Object v, v;
io.fabric.kubernetes.client.http.BasicBuilder v;
boolean v, v, v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.BasicBuilder;
v := @parameter: io.fabric.kubernetes.client.http.HttpHeaders;
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpHeaders: java.util.List headers(java.lang.String)>("Authorization");
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpHeaders: java.util.List headers(java.lang.String)>("Authorization");
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: boolean isNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
label:
specialinvoke v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: void setAuthHeader(io.fabric.kubernetes.client.http.BasicBuilder,java.lang.String)>(v, v);
label:
return;
}
public java.util.concurrent.CompletableFuture afterFailure(io.fabric.kubernetes.client.http.HttpRequest$Builder, io.fabric.kubernetes.client.http.HttpResponse)
{
io.fabric.kubernetes.client.http.HttpRequest v;
java.util.concurrent.CompletableFuture v, v, v;
io.fabric.kubernetes.client.http.HttpResponse v;
java.util.concurrent.atomic.AtomicReference v;
java.util.function.Function v;
java.lang.Boolean v;
io.fabric.kubernetes.client.http.HttpRequest$Builder v;
java.lang.String v, v, v;
boolean v, v, v;
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
io.fabric.openshift.client.OpenShiftConfig v, v, v;
java.lang.Object v, v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.HttpRequest$Builder;
v := @parameter: io.fabric.kubernetes.client.http.HttpResponse;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: io.fabric.kubernetes.client.http.HttpRequest request()>();
v = specialinvoke v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: boolean shouldProceed(io.fabric.kubernetes.client.http.HttpRequest,io.fabric.kubernetes.client.http.HttpResponse)>(v, v);
if v == 0 goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v = staticinvoke <java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture completedFuture(java.lang.Object)>(v);
return v;
label:
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.client.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.client.OpenShiftConfig: java.lang.String getUsername()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.client.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.client.OpenShiftConfig: java.lang.String getPassword()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.CompletableFuture authorize()>();
goto label;
label:
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.client.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.client.OpenShiftConfig: java.lang.String getOauthToken()>();
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: java.lang.Object getNonNullOrElse(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture completedFuture(java.lang.Object)>(v);
label:
v = staticinvoke <io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor$lambda_afterFailure_0__16: java.util.function.Function bootstrap$(io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor,io.fabric.kubernetes.client.http.HttpRequest$Builder)>(v, v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture thenApply(java.util.function.Function)>(v);
return v;
}
private void setAuthHeader(io.fabric.kubernetes.client.http.BasicBuilder, java.lang.String)
{
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.lang.Object[] v;
io.fabric.kubernetes.client.http.BasicBuilder v;
java.lang.String v, v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.BasicBuilder;
v := @parameter: java.lang.String;
if v == null goto label;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Bearer %s", v);
interfaceinvoke v.<io.fabric.kubernetes.client.http.BasicBuilder: io.fabric.kubernetes.client.http.BasicBuilder setHeader(java.lang.String,java.lang.String)>("Authorization", v);
label:
return;
}
private java.util.concurrent.CompletableFuture authorize()
{
java.net.URL v;
io.fabric.kubernetes.client.http.HttpRequest v;
java.lang.String[] v;
java.util.concurrent.CompletableFuture v, v, v;
java.util.function.Function v, v;
io.fabric.kubernetes.client.http.HttpRequest$Builder v, v;
java.lang.String v, v;
io.fabric.kubernetes.client.http.HttpClient v, v;
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.net.MalformedURLException v;
java.lang.RuntimeException v;
io.fabric.openshift.client.OpenShiftConfig v;
io.fabric.kubernetes.client.http.HttpClient$DerivedClientBuilder v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.kubernetes.client.http.HttpClient client>;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient: io.fabric.kubernetes.client.http.HttpClient$DerivedClientBuilder newBuilder()>();
interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient$DerivedClientBuilder: io.fabric.kubernetes.client.http.HttpClient$DerivedClientBuilder addOrReplaceInterceptor(java.lang.String,io.fabric.kubernetes.client.http.Interceptor)>("TOKEN", null);
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient$DerivedClientBuilder: io.fabric.kubernetes.client.http.HttpClient build()>();
label:
v = new java.net.URL;
v = newarray (java.lang.String)[2];
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.client.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.client.OpenShiftConfig: java.lang.String getMasterUrl()>();
v[0] = v;
v[1] = ".well-known/oauth-authorization-server";
v = staticinvoke <io.fabric.kubernetes.client.utils.URLUtils: java.lang.String join(java.lang.String[])>(v);
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <io.fabric.kubernetes.client.KubernetesClientException: java.lang.RuntimeException launderThrowable(java.lang.Throwable)>(v);
throw v;
label:
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient: io.fabric.kubernetes.client.http.HttpRequest$Builder newHttpRequestBuilder()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpRequest$Builder: io.fabric.kubernetes.client.http.HttpRequest$Builder url(java.net.URL)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpRequest$Builder: io.fabric.kubernetes.client.http.HttpRequest build()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient: java.util.concurrent.CompletableFuture sendAsync(io.fabric.kubernetes.client.http.HttpRequest,java.lang.Class)>(v, class "Ljava/lang/String;");
v = staticinvoke <io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor$lambda_authorize_1__17: java.util.function.Function bootstrap$(io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor,io.fabric.kubernetes.client.http.HttpClient)>(v, v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function)>(v);
v = staticinvoke <io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor$lambda_authorize_2__18: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture thenApply(java.util.function.Function)>(v);
return v;
catch java.net.MalformedURLException from label to label with label;
}
private boolean shouldProceed(io.fabric.kubernetes.client.http.HttpRequest, io.fabric.kubernetes.client.http.HttpResponse)
{
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.util.function.Predicate v;
io.fabric.kubernetes.client.http.HttpRequest v;
java.util.Set v;
io.fabric.kubernetes.client.http.HttpResponse v;
java.util.stream.Stream v;
int v, v;
java.lang.String v, v;
java.net.URI v;
boolean v, v, v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.HttpRequest;
v := @parameter: io.fabric.kubernetes.client.http.HttpResponse;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpRequest: java.net.URI uri()>();
v = virtualinvoke v.<java.net.URI: java.lang.String toString()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpRequest: java.lang.String method()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("POST");
if v == 0 goto label;
v = <io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.Set RETRIABLE_RESOURCES>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor$endsWith__19: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
return 0;
label:
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: int code()>();
if v == 401 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: int code()>();
if v == 403 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
java.util.Set v;
java.lang.String[] v;
java.util.HashSet v;
java.util.List v;
java.lang.String v, v, v, v, v, v, v;
v = new java.util.HashSet;
v = newarray (java.lang.String)[7];
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/LocalSubjectAccessReview;");
v[0] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/LocalResourceAccessReview;");
v[1] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/ResourceAccessReview;");
v[2] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/SelfSubjectRulesReview;");
v[3] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/SubjectRulesReview;");
v[4] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/openshift/api/model/SubjectAccessReview;");
v[5] = v;
v = staticinvoke <io.fabric.kubernetes.api.model.HasMetadata: java.lang.String getPlural(java.lang.Class)>(class "Lio/fabric8/kubernetes/api/model/authorization/v1/SelfSubjectAccessReview;");
v[6] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.Set RETRIABLE_RESOURCES> = v;
return;
}
}