private Object buildManagedIdentityCredential()

in azure-functions-java-sdktypes/src/main/java/com/microsoft/azure/functions/sdktype/blob/BlobClientHydrator.java [122:139]


    private Object buildManagedIdentityCredential(ClassLoader classLoader, String clientId) throws Exception {
        LOGGER.info("Attempting to build DefaultAzureCredential reflectively.");

        Class<?> builderClass = classLoader.loadClass("com.azure.identity.DefaultAzureCredentialBuilder");
        Object builder = builderClass.getDeclaredConstructor().newInstance();

        if (clientId != null && !clientId.isEmpty()) {
            LOGGER.info("Using user-assigned managed identity: " + clientId);
            // reflectively call .managedIdentityClientId(clientId)
            Method micidMethod = builderClass.getMethod("managedIdentityClientId", String.class);
            micidMethod.invoke(builder, clientId);
        } else {
            LOGGER.info("Using system-assigned managed identity (no clientId).");
        }
        // call build() to get the credential
        Method buildMethod = builderClass.getMethod("build");
        return buildMethod.invoke(builder);
    }