public class org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy extends org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy
{
private final java.lang.String apiToken;
public void <init>(java.lang.String)
{
java.lang.String v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy;
v := @parameter: java.lang.String;
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy: void <init>()>();
v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy: java.lang.String apiToken> = v;
return;
}
public java.sql.Connection getConnectionImpl(org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics, org.finos.legend.engine.shared.core.identity.Identity) throws org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException
{
org.finos.legend.engine.shared.core.identity.Identity v;
java.sql.SQLException v;
java.sql.Connection v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics v;
javax.sql.DataSource v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
label:
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceWithStatistics: javax.sql.DataSource getDataSource()>();
v = interfaceinvoke v.<javax.sql.DataSource: java.sql.Connection getConnection()>();
label:
return v;
label:
v := @caughtexception;
v = new org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException;
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException: void <init>(java.lang.Exception)>(v);
throw v;
catch java.sql.SQLException from label to label with label;
}
public org.eclipse.collections.api.tuple.Pair handleConnection(java.lang.String, java.util.Properties, org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager)
{
org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager v;
java.util.Properties v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy v;
org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential v;
java.lang.String v, v, v;
org.eclipse.collections.api.tuple.Pair v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy;
v := @parameter: java.lang.String;
v := @parameter: java.util.Properties;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy: java.lang.String apiToken>;
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy: org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential resolveCredential(java.util.Properties,java.lang.String)>(v, v);
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential: java.lang.String getApiToken()>();
virtualinvoke v.<java.util.Properties: java.lang.Object put(java.lang.Object,java.lang.Object)>("PWD", v);
v = staticinvoke <org.eclipse.collections.impl.tuple.Tuples: org.eclipse.collections.api.tuple.Pair pair(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.AuthenticationStrategyKey getKey()
{
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.ApiTokenAuthenticationStrategyKey v;
java.lang.String v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy;
v = new org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.ApiTokenAuthenticationStrategyKey;
v = v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy: java.lang.String apiToken>;
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.ApiTokenAuthenticationStrategyKey: void <init>(java.lang.String)>(v);
return v;
}
private org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential resolveCredential(java.util.Properties, java.lang.String)
{
java.util.Properties v;
org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager v;
org.finos.legend.engine.shared.core.identity.Credential v;
org.finos.legend.engine.shared.core.vault.Vault v;
java.lang.Exception v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException v;
org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential v;
java.util.Optional v;
java.lang.String v, v;
org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.IdentityState v;
boolean v, v;
v := @this: org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.ApiTokenAuthenticationStrategy;
v := @parameter: java.util.Properties;
v := @parameter: java.lang.String;
v = staticinvoke <org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager getInstance()>();
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.ConnectionStateManager: org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.IdentityState getIdentityStateUsing(java.util.Properties)>(v);
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.IdentityState: java.util.Optional getCredentialSupplier()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v != 0 goto label;
v = <org.finos.legend.engine.shared.core.vault.Vault: org.finos.legend.engine.shared.core.vault.Vault INSTANCE>;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.vault.Vault: java.lang.String getValue(java.lang.String)>(v);
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isEmpty(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = new org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException;
v = new java.lang.Exception;
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>("Could not retrieve API token from default Vault");
specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionException: void <init>(java.lang.Exception)>(v);
throw v;
label:
v = new org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential;
specialinvoke v.<org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential: void <init>(java.lang.String)>(v);
return v;
label:
v = specialinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy: org.finos.legend.engine.shared.core.identity.Credential getDatabaseCredential(org.finos.legend.engine.plan.execution.stores.relational.connection.ds.state.IdentityState)>(v);
return v;
}
}