in plugins/vault/src/main/java/co/elastic/gradle/vault/VaultAccessStrategy.java [33:79]
public Vault access(
VaultExtension vault,
VaultAuthenticationExtension.VaultAuthMethod authMethod,
BiConsumer<String, Long> tokenAction
) {
if (authMethod instanceof VaultAuthenticationExtension.VaultTokenEnvVar) {
return authWithToken(vault, ((VaultAuthenticationExtension.VaultTokenEnvVar) authMethod).getToken().get());
} else if (authMethod instanceof VaultAuthenticationExtension.VaultTokenFile) {
return authWithToken(vault, ((VaultAuthenticationExtension.VaultTokenFile) authMethod).getToken().get());
} else if (authMethod instanceof VaultAuthenticationExtension.VaultRoleAndSecretID) {
return authAndStoreToken(vault, (driver) -> {
try {
final VaultAuthenticationExtension.VaultRoleAndSecretID roleAndSecret = (VaultAuthenticationExtension.VaultRoleAndSecretID) authMethod;
return driver.auth().loginByAppRole(
roleAndSecret.getRoleId().get(),
roleAndSecret.getSecretId().get()
);
} catch (VaultException e) {
throw new GradleException("Failed to authenticate to vault", e);
}
},
tokenAction
);
} else if (authMethod instanceof VaultAuthenticationExtension.GithubTokenFile) {
return authAndStoreToken(vault, (driver) -> {
try {
return driver.auth().loginByGithub(((VaultAuthenticationExtension.GithubTokenFile) authMethod).getToken().get());
} catch (VaultException e) {
throw new GradleException("Failed to authenticate to vault", e);
}
},
tokenAction
);
} else if (authMethod instanceof VaultAuthenticationExtension.GithubTokenEnv) {
return authAndStoreToken(vault, (driver) -> {
try {
return driver.auth().loginByGithub(((VaultAuthenticationExtension.GithubTokenEnv) authMethod).getToken().get());
} catch (VaultException e) {
throw new GradleException("Failed to authenticate to vault", e);
}
},
tokenAction
);
} else {
throw new IllegalStateException("Unsupported auth method " + authMethod.getClass());
}
}