private Object buildWithManagedIdentity()

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;
    }