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 boolean afterFailure(io.fabric.kubernetes.client.http.BasicBuilder, io.fabric.kubernetes.client.http.HttpResponse)
{
java.lang.Throwable v;
io.fabric.kubernetes.client.http.HttpRequest v;
io.fabric.kubernetes.client.http.HttpResponse v;
java.util.concurrent.atomic.AtomicReference v, v, v, v;
java.lang.String v, v, v;
io.fabric.kubernetes.client.http.HttpClient v;
boolean v, v, v, v, v;
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
io.fabric.openshift.client.OpenShiftConfig v, v, v, v;
java.lang.Object v;
io.fabric.kubernetes.client.http.BasicBuilder v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
v := @parameter: io.fabric.kubernetes.client.http.BasicBuilder;
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;
return 0;
label:
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 = 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 = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: io.fabric.kubernetes.client.http.HttpClient client>;
entermonitor v;
label:
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(null);
v = specialinvoke v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.lang.String authorize()>();
if v == null goto label;
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw 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 getOauthToken()>();
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 getOauthToken()>();
v = v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
label:
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
specialinvoke v.<io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor: void setAuthHeader(io.fabric.kubernetes.client.http.BasicBuilder,java.lang.String)>(v, v);
return 1;
label:
return 0;
catch java.lang.Throwable from label to label with label;
}
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.lang.String authorize()
{
java.net.URL v, v;
io.fabric.kubernetes.client.http.HttpResponse v, v, v;
com.fasterxml.jackson.databind.JsonNode v, v;
io.fabric.kubernetes.client.http.HttpRequest$Builder v, v, v, v, v;
boolean v, v, v, v;
io.fabric.kubernetes.client.KubernetesClientException v, v;
io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor v;
java.lang.Exception v;
io.fabric.openshift.client.OpenShiftConfig v, v, v;
java.util.List v;
java.util.Optional v, v;
io.fabric.kubernetes.client.http.HttpClient$Builder v;
io.fabric.kubernetes.client.http.HttpRequest v, v;
java.lang.String[] v;
int v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.fabric.kubernetes.client.http.HttpClient v, v, v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.RuntimeException v;
java.lang.Object v, v, v, v;
v := @this: io.fabric.openshift.client.internal.OpenShiftOAuthInterceptor;
label:
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$Builder newBuilder()>();
interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient$Builder: io.fabric.kubernetes.client.http.HttpClient$Builder addOrReplaceInterceptor(java.lang.String,io.fabric.kubernetes.client.http.Interceptor)>("TOKEN", null);
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpClient$Builder: io.fabric.kubernetes.client.http.HttpClient build()>();
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);
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: io.fabric.kubernetes.client.http.HttpResponse send(io.fabric.kubernetes.client.http.HttpRequest,java.lang.Class)>(v, class "Ljava/lang/String;");
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: boolean isSuccessful()>();
if v == 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.lang.Object body()>();
if v != null goto label;
label:
v = new io.fabric.kubernetes.client.KubernetesClientException;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: int code()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.lang.String message()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unexpected response (\u \u)");
specialinvoke v.<io.fabric.kubernetes.client.KubernetesClientException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.lang.Object body()>();
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: com.fasterxml.jackson.databind.ObjectMapper jsonMapper()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.JsonNode readTree(java.lang.String)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: com.fasterxml.jackson.databind.JsonNode get(java.lang.String)>("authorization_endpoint");
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: java.lang.String asText()>();
v = new java.net.URL;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001?response_type=token&client_id=openshift-challenging-client");
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
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 = 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.HttpClientUtils: java.lang.String basicCredentials(java.lang.String,java.lang.String)>(v, v);
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.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$Builder setHeader(java.lang.String,java.lang.String)>("Authorization", 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: io.fabric.kubernetes.client.http.HttpResponse send(io.fabric.kubernetes.client.http.HttpRequest,java.lang.Class)>(v, class "Ljava/lang/String;");
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.util.Optional previousResponse()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.util.Optional previousResponse()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
goto label;
label:
v = v;
label:
v = v;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.util.List headers(java.lang.String)>("Location");
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
goto label;
label:
v = null;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new io.fabric.kubernetes.client.KubernetesClientException;
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: int code()>();
v = interfaceinvoke v.<io.fabric.kubernetes.client.http.HttpResponse: java.lang.String message()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unexpected response (\u \u), to the authorization request. Missing header:[Location]!");
specialinvoke v.<io.fabric.kubernetes.client.KubernetesClientException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("access_token=");
v = "access_token=";
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("&expires");
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <io.fabric.kubernetes.client.KubernetesClientException: java.lang.RuntimeException launderThrowable(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception 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__28: 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;
}
}