public abstract class org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin extends java.lang.Object implements java.lang.AutoCloseable
{
private static final org.slf4j.Logger log;
private static final long DELAY_SECONDS_BEFORE_NEXT_RETRY_WHEN_RELOGIN_FAILS;
private static final java.util.Random RNG;
private final org.apache.kafkaesqueesque.common.utils.Time time;
private java.lang.Thread refresherThread;
private final org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory loginContextFactory;
private final java.lang.String contextName;
private final javax.security.auth.login.Configuration configuration;
private final org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig;
private final org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler;
private volatile javax.security.auth.Subject subject;
private boolean hasExpiringCredential;
private java.lang.String principalName;
private javax.security.auth.login.LoginContext loginContext;
private org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential;
private final java.lang.Class mandatoryClassToSynchronizeOnPriorToRefresh;
public void <init>(java.lang.String, javax.security.auth.login.Configuration, org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig, org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler, java.lang.Class)
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
org.apache.kafkaesqueesque.common.utils.Time v;
java.lang.Class v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory v;
java.lang.String v;
javax.security.auth.login.Configuration v;
org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v := @parameter: java.lang.String;
v := @parameter: javax.security.auth.login.Configuration;
v := @parameter: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig;
v := @parameter: org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler;
v := @parameter: java.lang.Class;
v = new org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory: void <init>()>();
v = <org.apache.kafkaesqueesque.common.utils.Time: org.apache.kafkaesqueesque.common.utils.Time SYSTEM>;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: void <init>(java.lang.String,javax.security.auth.login.Configuration,org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig,org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler,java.lang.Class,org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory,org.apache.kafkaesqueesque.common.utils.Time)>(v, v, v, v, v, v, v);
return;
}
public void <init>(java.lang.String, javax.security.auth.login.Configuration, org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig, org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler, java.lang.Class, org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory, org.apache.kafkaesqueesque.common.utils.Time)
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
org.apache.kafkaesqueesque.common.utils.Time v;
java.lang.Class v;
java.lang.Object v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory v;
java.lang.String v;
javax.security.auth.login.Configuration v;
org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v := @parameter: java.lang.String;
v := @parameter: javax.security.auth.login.Configuration;
v := @parameter: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig;
v := @parameter: org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler;
v := @parameter: java.lang.Class;
v := @parameter: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory;
v := @parameter: org.apache.kafkaesqueesque.common.utils.Time;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.Subject subject> = null;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential> = 0;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName> = null;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext> = null;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential> = null;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String contextName> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.Configuration configuration> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig> = v;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Class mandatoryClassToSynchronizeOnPriorToRefresh> = v;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory loginContextFactory> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.utils.Time time> = v;
return;
}
public javax.security.auth.Subject subject()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
javax.security.auth.Subject v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.Subject subject>;
return v;
}
public java.lang.String contextName()
{
java.lang.String v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String contextName>;
return v;
}
public javax.security.auth.login.Configuration configuration()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
javax.security.auth.login.Configuration v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.Configuration configuration>;
return v;
}
public org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.auth.AuthenticateCallbackHandler callbackHandler>;
return v;
}
public java.lang.String serviceName()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
return "kafka";
}
public javax.security.auth.login.LoginContext login() throws javax.security.auth.login.LoginException
{
java.util.Date v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$Refresher v;
byte v;
java.lang.Thread v;
boolean v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential v, v, v, v;
java.lang.Object[] v, v;
long v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
javax.security.auth.login.LoginContext v, v, v, v, v;
org.apache.kafkaesqueesque.common.utils.KafkaThread v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory v, v;
java.lang.String v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v;
javax.security.auth.Subject v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory loginContextFactory>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory: javax.security.auth.login.LoginContext createLoginContext(org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin)>(v);
virtualinvoke v.<javax.security.auth.login.LoginContext: void login()>();
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Successfully logged in.");
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
v = virtualinvoke v.<javax.security.auth.login.LoginContext: javax.security.auth.Subject getSubject()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.Subject subject> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential>;
if v != 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("No Expiring Credential");
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName> = null;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread> = null;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
return v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.String principalName()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: long expireTimeMs()>();
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: long currentMs()>();
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("[Principal={}]: Current clock: {} is later than expiry {}. This may indicate a clock skew problem. Check that this host\'s and remote host\'s clocks are in sync. Not starting refresh thread. This process is likely unable to authenticate SASL connections (for example, it is unlikely to be able to authenticate a connection with a Kafka Broker).", v);
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
return v;
label:
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("[Principal={}]: It is an expiring credential", v);
label:
v = newarray (java.lang.Object)[1];
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName>;
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("kafka-expiring-relogin-thread-%s", v);
v = new org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$Refresher;
specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$Refresher: void <init>(org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin)>(v);
v = staticinvoke <org.apache.kafkaesqueesque.common.utils.KafkaThread: org.apache.kafkaesqueesque.common.utils.KafkaThread daemon(java.lang.String,java.lang.Runnable)>(v, v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread>;
virtualinvoke v.<java.lang.Thread: void start()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory loginContextFactory>;
virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory: void refresherThreadStarted()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
return v;
}
public void close()
{
org.slf4j.Logger v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
java.lang.InterruptedException v;
java.lang.Thread v, v, v, v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread>;
if v == null goto label;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread>;
v = virtualinvoke v.<java.lang.Thread: boolean isAlive()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread>;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Thread refresherThread>;
virtualinvoke v.<java.lang.Thread: void join()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("[Principal={}]: Interrupted while waiting for re-login thread to shutdown.", v, v);
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public abstract org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential();
private java.lang.Long refreshMs(long)
{
byte v, v, v, v, v;
java.lang.Long v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig v, v, v, v;
java.lang.Object[] v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
short v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.util.Date v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Random v;
boolean v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
double v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v := @parameter: long;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v != null goto label;
v = v + 10000L;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("[Principal={}]: No Expiring credential found: will try again at {}", v, v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: long expireTimeMs()>();
v = v cmp v;
if v <= 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean isLogoutRequiredBeforeLoggingBackIn()>();
if v == 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("[Principal={}]: Current clock: {} is later than expiry {}. This may indicate a clock skew problem. Check that this host\'s and remote host\'s clocks are in sync. Exiting refresh thread.", v);
return null;
label:
v = v + 10000L;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("[Principal={}]: Expiring credential already expired at {}: will try to refresh again at {}", v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.Long absoluteLastRefreshTimeMs()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v >= 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("[Principal={}]: Expiring credential refresh thread exiting because the expiring credential\'s current expiration time ({}) exceeds the latest possible refresh time ({}). This process will not be able to authenticate new SASL connections after that time (for example, it will not be able to authenticate a new connection with a Kafka Broker).", v);
return null;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.Long startTimeMs()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
goto label;
label:
v = v;
label:
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.String principalName()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("[Principal={}]: Expiring credential valid from {} to {}", v);
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig: double loginRefreshWindowFactor()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig: double loginRefreshWindowJitter()>();
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.util.Random RNG>;
v = virtualinvoke v.<java.util.Random: double nextDouble()>();
v = v * v;
v = v + v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig: short loginRefreshMinPeriodSeconds()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig: short loginRefreshBufferSeconds()>();
v = v + v;
v = 1000L * v;
v = v + v;
v = v cmp v;
if v <= 0 goto label;
v = v - v;
v = v * v;
v = v + v;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[5];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[2] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[3] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("[Principal={}]: Expiring credential expires at {}, so buffer times of {} and {} seconds at the front and back, respectively, cannot be accommodated.  We will refresh at {}.", v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = v - v;
v = v * v;
v = v + v;
v = v * 1000L;
v = v - v;
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.String principalName()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[2] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("[Principal={}]: Proposed refresh time of {} extends into the desired buffer time of {} seconds before expiration, so refresh it at the desired buffer begin point, at {}", v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = 1000L * v;
v = v + v;
v = v cmp v;
if v >= 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v[0] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[1] = v;
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v[2] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("[Principal={}]: Expiring credential re-login thread time adjusted from {} to {} since the former is sooner than the minimum refresh interval ({} seconds from now).", v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
return v;
}
private void reLogin() throws javax.security.auth.login.LoginException, org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException v, v;
boolean v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential v, v, v, v, v, v, v, v, v;
java.lang.Throwable v, v;
java.lang.Object[] v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
javax.security.auth.login.LoginContext v, v, v, v;
java.lang.Boolean v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory v;
java.lang.String v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v;
java.lang.Class v, v, v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.Class mandatoryClassToSynchronizeOnPriorToRefresh>;
entermonitor v;
label:
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean isLogoutRequiredBeforeLoggingBackIn()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential>;
if v == 0 goto label;
if v == 0 goto label;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Initiating logout for {}", v);
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
virtualinvoke v.<javax.security.auth.login.LoginContext: void logout()>();
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential>;
if v == 0 goto label;
v = new org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Subject\'s private credentials still contains an instance of %s even though logout() was invoked; exiting refresh thread", v);
specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
v = 0;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory loginContextFactory>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$LoginContextFactory: javax.security.auth.login.LoginContext createLoginContext(org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin)>(v);
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext> = v;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Initiating re-login for {}, logout() still needs to be called on a previous login = {}", v, v);
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext>;
virtualinvoke v.<javax.security.auth.login.LoginContext: void login()>();
v = 1;
if v == null goto label;
virtualinvoke v.<javax.security.auth.login.LoginContext: void logout()>();
label:
goto label;
label:
v := @caughtexception;
if v != 0 goto label;
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: javax.security.auth.login.LoginContext loginContext> = v;
label:
throw v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential> = v;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: boolean hasExpiringCredential>;
if v != 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("No Expiring Credential after a supposedly-successful re-login");
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName> = null;
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v != v goto label;
v = new org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException;
v = newarray (java.lang.Object)[1];
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Subject\'s private credentials still contains the previous, soon-to-expire instance of %s even though login() followed by logout() was invoked; exiting refresh thread", v);
specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin$ExitRefresherThreadDueToIllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential: java.lang.String principalName()>();
v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName> = v;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log>;
v = specialinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalLogText()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("[Principal={}]: It is an expiring credential after re-login as expected", v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private java.lang.String principalLogText()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential v, v;
java.lang.Class v;
java.lang.String v, v, v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
if v != null goto label;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName>;
goto label;
label:
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredential expiringCredential>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.lang.String principalName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("\u0001:\u0001");
label:
return v;
}
private long currentMs()
{
org.apache.kafkaesqueesque.common.utils.Time v;
long v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesque.common.utils.Time: long milliseconds()>();
return v;
}
private boolean isLogoutRequiredBeforeLoggingBackIn()
{
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig v;
org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin v;
boolean v, v;
v := @this: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin;
v = v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig expiringCredentialRefreshConfig>;
v = virtualinvoke v.<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshConfig: boolean loginRefreshReloginAllowedBeforeLogout()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
java.util.Random v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/kafkaesqueesque/common/security/oauthbearer/internals/expiring/ExpiringCredentialRefreshingLogin;");
<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: org.slf4j.Logger log> = v;
v = new java.util.Random;
specialinvoke v.<java.util.Random: void <init>()>();
<org.apache.kafkaesqueesque.common.security.oauthbearer.internals.expiring.ExpiringCredentialRefreshingLogin: java.util.Random RNG> = v;
return;
}
}