public abstract class org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow extends java.lang.Object implements org.finos.legend.engine.authentication.DatabaseAuthenticationFlow
{
private static final org.slf4j.Logger LOGGER;
public void <init>()
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public java.lang.Class getDatasourceClass()
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
return class "Lorg/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/specification/StaticDatasourceSpecification;";
}
public java.lang.Class getAuthenticationStrategyClass()
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
return class "Lorg/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/authentication/MiddleTierUserNamePasswordAuthenticationStrategy;";
}
public org.finos.legend.engine.shared.core.identity.Credential makeCredential(org.finos.legend.engine.shared.core.identity.Identity, org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification, org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy) throws java.lang.Exception
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
org.finos.legend.engine.shared.core.identity.Credential v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy;
v = staticinvoke <org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext empty()>();
v = virtualinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: org.finos.legend.engine.shared.core.identity.Credential makeCredential(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy,org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)>(v, v, v, v);
return v;
}
public org.finos.legend.engine.shared.core.identity.Credential makeCredential(org.finos.legend.engine.shared.core.identity.Identity, org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification, org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy, org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext) throws java.lang.Exception
{
org.finos.legend.engine.shared.core.operational.logs.LoggingEventType v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification v;
org.finos.legend.engine.shared.core.identity.Identity v;
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.Object[] v;
org.slf4j.Logger v;
org.finos.legend.engine.shared.core.identity.credential.middletier.MiddleTierUserPasswordCredential v;
org.eclipse.collections.api.map.ImmutableMap v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy v;
org.finos.legend.engine.shared.core.operational.logs.LogInfo v;
java.lang.String v, v, v, v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.shared.core.identity.Identity;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
v := @parameter: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy;
v := @parameter: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext: org.eclipse.collections.api.map.ImmutableMap getContextParams()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Acquiring middle tier credential. Context params ={}", v);
v = <org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: org.slf4j.Logger LOGGER>;
v = new org.finos.legend.engine.shared.core.operational.logs.LogInfo;
v = virtualinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: java.lang.String getName()>();
v = <org.finos.legend.engine.shared.core.operational.logs.LoggingEventType: org.finos.legend.engine.shared.core.operational.logs.LoggingEventType MIDDLETIER_CREDENTIAL_ACQUISITION>;
specialinvoke v.<org.finos.legend.engine.shared.core.operational.logs.LogInfo: void <init>(java.lang.String,org.finos.legend.engine.shared.core.operational.logs.ILoggingEventType,java.lang.String)>(v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.shared.core.operational.logs.LogInfo: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
specialinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode parseUsageContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)>(v);
specialinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: java.lang.String parseResourceContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)>(v);
specialinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: void verifyMAC(java.lang.String)>(null);
v = v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.MiddleTierUserNamePasswordAuthenticationStrategy: java.lang.String vaultReference>;
v = virtualinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: org.finos.legend.engine.shared.core.identity.credential.middletier.MiddleTierUserPasswordCredential getCredentialFromVault(java.lang.String)>(v);
return v;
}
private void verifyMAC(java.lang.String) throws java.lang.Exception
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.String v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: java.lang.String;
return;
}
private org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode parseUsageContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.Object[] v, v;
org.eclipse.collections.api.block.function.Function v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode v;
java.lang.String v, v, v, v, v, v, v;
boolean v;
java.lang.RuntimeException v, v;
org.eclipse.collections.api.map.ImmutableMap v;
java.lang.IllegalArgumentException v;
org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode[] v;
org.eclipse.collections.api.list.ImmutableList v, v;
java.lang.Object v;
org.eclipse.collections.api.factory.list.ImmutableListFactory v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext;
label:
v = virtualinvoke v.<org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext: org.eclipse.collections.api.map.ImmutableMap getContextParams()>();
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String USAGE_CONTEXT_PARAM>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.RuntimeException;
v = newarray (java.lang.Object)[2];
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String USAGE_CONTEXT_PARAM>;
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Credential acquisition context does not contain a parameter named \'%s\'. Supplied context values=%s", v);
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String USAGE_CONTEXT_PARAM>;
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode: org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode valueOf(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.eclipse.collections.api.factory.Lists: org.eclipse.collections.api.factory.list.ImmutableListFactory immutable>;
v = staticinvoke <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode: org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput$ExecutionMode[] values()>();
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.ImmutableListFactory: org.eclipse.collections.api.list.ImmutableList of(java.lang.Object[])>(v);
v = staticinvoke <org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow$lambda_parseUsageContext_9c459a06_1__1: org.eclipse.collections.api.block.function.Function bootstrap$()>();
v = interfaceinvoke v.<org.eclipse.collections.api.list.ImmutableList: org.eclipse.collections.api.list.ImmutableList collect(org.eclipse.collections.api.block.function.Function)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.list.ImmutableList: java.lang.String makeString(java.lang.String)>(",");
v = new java.lang.RuntimeException;
v = newarray (java.lang.Object)[3];
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String USAGE_CONTEXT_PARAM>;
v[0] = v;
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Invalid value for parameter \'%s\' . Supplied value=%s, Valid values=%s", v);
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
catch java.lang.IllegalArgumentException from label to label with label;
}
private java.lang.String parseResourceContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.String v, v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext;
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String RESOURCE_CONTEXT_PARAM>;
v = specialinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: java.lang.String parseContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext,java.lang.String)>(v, v);
return v;
}
private java.lang.String parseMACContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext)
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.String v, v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext;
v = <org.finos.legend.engine.plan.execution.authorization.PlanExecutionAuthorizerInput: java.lang.String MAC_CONTEXT_PARAM>;
v = specialinvoke v.<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: java.lang.String parseContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext,java.lang.String)>(v, v);
return v;
}
private java.lang.String parseContext(org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext, java.lang.String)
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.Object[] v;
org.eclipse.collections.api.factory.map.sorted.MutableSortedMapFactory v;
java.lang.RuntimeException v;
org.eclipse.collections.api.map.ImmutableMap v;
org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext v;
org.eclipse.collections.api.map.sorted.MutableSortedMap v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v;
java.util.Comparator v;
boolean v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.finos.legend.engine.authentication.DatabaseAuthenticationFlow$RuntimeContext: org.eclipse.collections.api.map.ImmutableMap getContextParams()>();
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.eclipse.collections.api.factory.SortedMaps: org.eclipse.collections.api.factory.map.sorted.MutableSortedMapFactory mutable>;
v = staticinvoke <org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow$compareTo__2: java.util.Comparator bootstrap$()>();
v = interfaceinvoke v.<org.eclipse.collections.api.factory.map.sorted.MutableSortedMapFactory: org.eclipse.collections.api.map.sorted.MutableSortedMap 'with'(java.util.Comparator)>(v);
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: java.util.Map castToMap()>();
interfaceinvoke v.<org.eclipse.collections.api.map.sorted.MutableSortedMap: void putAll(java.util.Map)>(v);
v = new java.lang.RuntimeException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Credential acquisition context does not contain a parameter named \'%s\'. Supplied context values=%s", v);
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.eclipse.collections.api.map.ImmutableMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
protected org.finos.legend.engine.shared.core.identity.credential.middletier.MiddleTierUserPasswordCredential getCredentialFromVault(java.lang.String) throws java.lang.Exception
{
org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow v;
java.lang.Object[] v;
com.fasterxml.jackson.databind.ObjectMapper v;
org.finos.legend.engine.shared.core.vault.Vault v;
java.lang.Exception v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow;
v := @parameter: java.lang.String;
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);
if v != null goto label;
v = new java.lang.Exception;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Failed to locate credential using vault reference \'%s\'", v);
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String)>(v);
throw v;
label:
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object readValue(java.lang.String,java.lang.Class)>(v, class "Lorg/finos/legend/engine/shared/core/identity/credential/middletier/MiddleTierUserPasswordCredential;");
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/authentication/flows/middletier/AbstractMiddleTierUserNamePasswordAuthenticationFlow;");
<org.finos.legend.engine.authentication.flows.middletier.AbstractMiddleTierUserNamePasswordAuthenticationFlow: org.slf4j.Logger LOGGER> = v;
return;
}
}