in azure-functions-java-sdktypes/src/main/java/com/microsoft/azure/functions/sdktype/blob/BlobContainerHydrator.java [68:90]
private Object buildWithManagedIdentity(String containerName, String endpoint, Object credential) throws Exception {
LOGGER.info("buildWithManagedIdentity for container: " + containerName + " endpoint: " + endpoint);
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Class<?> builderClass = cl.loadClass("com.azure.storage.blob.BlobContainerClientBuilder");
Object builder = builderClass.getDeclaredConstructor().newInstance();
// reflect builder.credential(tokenCredential)
Class<?> tokenCredClass = cl.loadClass("com.azure.core.credential.TokenCredential");
Method credMethod = builderClass.getMethod("credential", tokenCredClass);
credMethod.invoke(builder, credential);
Method endpointMethod = builderClass.getMethod("endpoint", String.class);
endpointMethod.invoke(builder, endpoint);
Method contMethod = builderClass.getMethod("containerName", String.class);
contMethod.invoke(builder, containerName);
Method buildM = builderClass.getMethod("buildClient");
Object containerClient = buildM.invoke(builder);
LOGGER.info("Successfully built BlobContainerClient using managed identity approach.");
return containerClient;
}