public class io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor extends java.lang.Object implements okhttp.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.lang.String K8S_AUTHORIZATION;
private static final java.lang.String OPENSHIFT_AUTHORIZATION;
private final okhttp.OkHttpClient client;
private final io.fabric.openshift.clnt.v.OpenShiftConfig config;
private final java.util.concurrent.atomic.AtomicReference oauthToken;
public void <init>(okhttp.OkHttpClient, io.fabric.openshift.clnt.v.OpenShiftConfig)
{
okhttp.OkHttpClient v;
io.fabric.openshift.clnt.v.OpenShiftConfig v;
java.util.concurrent.atomic.AtomicReference v;
io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor v;
v := @this: io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor;
v := @parameter: okhttp.OkHttpClient;
v := @parameter: io.fabric.openshift.clnt.v.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.clnt.v.internal.OpenShiftOAuthInterceptor: java.util.concurrent.atomic.AtomicReference oauthToken> = v;
v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: okhttp.OkHttpClient client> = v;
v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config> = v;
return;
}
public okhttp.Response intercept(okhttp.Interceptor$Chain) throws java.io.IOException
{
java.lang.Throwable v;
okhttp.Request$Builder v;
java.util.concurrent.atomic.AtomicReference v, v, v, v;
io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor v;
okhttp.Response v, v;
java.lang.String v, v, v, v;
okhttp.ResponseBody v;
boolean v, v, v, v, v, v, v;
okhttp.Request v, v, v;
io.fabric.openshift.clnt.v.OpenShiftConfig v, v, v, v;
okhttp.Interceptor$Chain v;
okhttp.OkHttpClient v;
java.lang.Object v;
v := @this: io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor;
v := @parameter: okhttp.Interceptor$Chain;
v = interfaceinvoke v.<okhttp.Interceptor$Chain: okhttp.Request request()>();
v = virtualinvoke v.<okhttp.Request: okhttp.Request$Builder newBuilder()>();
v = v.<io.fabric.openshift.clnt.v.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.clnt.v.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<okhttp.Request: java.lang.String header(java.lang.String)>("Authorization");
v = staticinvoke <io.fabric.kubernetes.clnt.v.utils.Utils: boolean isNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
specialinvoke v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: void setAuthHeader(okhttp.Request$Builder,java.lang.String)>(v, v);
label:
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request build()>();
v = interfaceinvoke v.<okhttp.Interceptor$Chain: okhttp.Response proceed(okhttp.Request)>(v);
v = specialinvoke v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: boolean isResponseSuccessful(okhttp.Request,okhttp.Response)>(v, v);
if v == 0 goto label;
return v;
label:
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getUsername()>();
v = staticinvoke <io.fabric.kubernetes.clnt.v.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getPassword()>();
v = staticinvoke <io.fabric.kubernetes.clnt.v.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: okhttp.OkHttpClient client>;
entermonitor v;
label:
v = v.<io.fabric.openshift.clnt.v.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.clnt.v.internal.OpenShiftOAuthInterceptor: java.lang.String authorize()>();
if v == null goto label;
v = v.<io.fabric.openshift.clnt.v.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.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getOauthToken()>();
v = staticinvoke <io.fabric.kubernetes.clnt.v.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getOauthToken()>();
v = v.<io.fabric.openshift.clnt.v.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.clnt.v.utils.Utils: boolean isNotNullOrEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<okhttp.Response: okhttp.ResponseBody body()>();
virtualinvoke v.<okhttp.ResponseBody: void close()>();
specialinvoke v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: void setAuthHeader(okhttp.Request$Builder,java.lang.String)>(v, v);
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request build()>();
v = interfaceinvoke v.<okhttp.Interceptor$Chain: okhttp.Response proceed(okhttp.Request)>(v);
return v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void setAuthHeader(okhttp.Request$Builder, java.lang.String)
{
java.lang.Object[] v;
okhttp.Request$Builder v;
java.lang.String v, v;
io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor v;
v := @this: io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor;
v := @parameter: okhttp.Request$Builder;
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);
virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder header(java.lang.String,java.lang.String)>("Authorization", v);
label:
return;
}
private java.lang.String authorize()
{
okhttp.Request$Builder v, v, v, v, v, v, v;
java.net.URL v, v;
io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor v;
com.fasterxml.jackson.databind.JsonNode v, v;
okhttp.ResponseBody v, v;
boolean v, v;
okhttp.Request v, v;
io.fabric.openshift.clnt.v.OpenShiftConfig v, v, v;
java.lang.Exception v;
java.util.List v;
okhttp.OkHttpClient$Builder v;
java.lang.String[] v;
int v, v, v, v, v, v;
okhttp.Response v, v, v, v, v, v, v;
okhttp.Call v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.fasterxml.jackson.databind.ObjectMapper v;
java.lang.RuntimeException v;
okhttp.OkHttpClient v, v;
io.fabric.kubernetes.clnt.v.KubernetesClientException v, v;
v := @this: io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor;
label:
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: okhttp.OkHttpClient client>;
v = virtualinvoke v.<okhttp.OkHttpClient: okhttp.OkHttpClient$Builder newBuilder()>();
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: java.util.List interceptors()>();
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
v = virtualinvoke v.<okhttp.OkHttpClient$Builder: okhttp.OkHttpClient build()>();
v = new java.net.URL;
v = newarray (java.lang.String)[2];
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getMasterUrl()>();
v[0] = v;
v[1] = ".well-known/oauth-authorization-server";
v = staticinvoke <io.fabric.kubernetes.clnt.v.utils.URLUtils: java.lang.String join(java.lang.String[])>(v);
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
v = new okhttp.Request$Builder;
specialinvoke v.<okhttp.Request$Builder: void <init>()>();
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder get()>();
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder url(java.net.URL)>(v);
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request build()>();
v = virtualinvoke v.<okhttp.OkHttpClient: okhttp.Call newCall(okhttp.Request)>(v);
v = interfaceinvoke v.<okhttp.Call: okhttp.Response execute()>();
v = virtualinvoke v.<okhttp.Response: boolean isSuccessful()>();
if v == 0 goto label;
v = virtualinvoke v.<okhttp.Response: okhttp.ResponseBody body()>();
if v != null goto label;
label:
v = new io.fabric.kubernetes.clnt.v.KubernetesClientException;
v = virtualinvoke v.<okhttp.Response: int code()>();
v = virtualinvoke v.<okhttp.Response: 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.clnt.v.KubernetesClientException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<okhttp.Response: okhttp.ResponseBody body()>();
v = virtualinvoke v.<okhttp.ResponseBody: java.lang.String string()>();
v = staticinvoke <io.fabric.kubernetes.clnt.v.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()>();
virtualinvoke v.<okhttp.Response: void close()>();
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.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getUsername()>();
v = v.<io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor: io.fabric.openshift.clnt.v.OpenShiftConfig config>;
v = virtualinvoke v.<io.fabric.openshift.clnt.v.OpenShiftConfig: java.lang.String getPassword()>();
v = staticinvoke <okhttp.Credentials: java.lang.String basic(java.lang.String,java.lang.String)>(v, v);
v = new okhttp.Request$Builder;
specialinvoke v.<okhttp.Request$Builder: void <init>()>();
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder get()>();
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder url(java.net.URL)>(v);
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request$Builder header(java.lang.String,java.lang.String)>("Authorization", v);
v = virtualinvoke v.<okhttp.Request$Builder: okhttp.Request build()>();
v = virtualinvoke v.<okhttp.OkHttpClient: okhttp.Call newCall(okhttp.Request)>(v);
v = interfaceinvoke v.<okhttp.Call: okhttp.Response execute()>();
virtualinvoke v.<okhttp.Response: void close()>();
v = virtualinvoke v.<okhttp.Response: okhttp.Response priorResponse()>();
if v == null goto label;
v = virtualinvoke v.<okhttp.Response: okhttp.Response priorResponse()>();
goto label;
label:
v = v;
label:
v = virtualinvoke v.<okhttp.Response: okhttp.Response networkResponse()>();
if v == null goto label;
v = virtualinvoke v.<okhttp.Response: okhttp.Response networkResponse()>();
goto label;
label:
v = v;
label:
v = v;
v = virtualinvoke v.<okhttp.Response: java.lang.String header(java.lang.String)>("Location");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new io.fabric.kubernetes.clnt.v.KubernetesClientException;
v = virtualinvoke v.<okhttp.Response: int code()>();
v = virtualinvoke v.<okhttp.Response: 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.clnt.v.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.clnt.v.KubernetesClientException: java.lang.RuntimeException launderThrowable(java.lang.Throwable)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
private boolean isResponseSuccessful(okhttp.Request, okhttp.Response)
{
okhttp.Request v;
io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor v;
int v, v;
okhttp.Response v;
java.lang.String v;
okhttp.HttpUrl v;
boolean v, v, v;
v := @this: io.fabric.openshift.clnt.v.internal.OpenShiftOAuthInterceptor;
v := @parameter: okhttp.Request;
v := @parameter: okhttp.Response;
v = virtualinvoke v.<okhttp.Request: okhttp.HttpUrl url()>();
v = virtualinvoke v.<okhttp.HttpUrl: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("authorization.k8s.io");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("authorization.openshift.io");
if v == 0 goto label;
label:
return 0;
label:
v = virtualinvoke v.<okhttp.Response: int code()>();
if v == 401 goto label;
v = virtualinvoke v.<okhttp.Response: int code()>();
if v == 403 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
}