AclEntry class in Java SDK doesn't allow user id to be passed and expects Name of the user as paramater.
AclEntry newAcl = new AclEntry(AclScope.ACCESS,AclType.USER,name,AclAction.ALL);
When a service principal is deleted and recreated with the same name in AAD then AclEntry class ended up adding old service principal even after explicitly removing the old service principal from the file or directory access. While the behavior is questioned in a different channel, checking here in the SDK to see if this class can be improved to accept ID as parameter. I am not sure since this wrapper is referring on WebHDFS REST API but i can see that PowerShell command https://docs.microsoft.com/en-us/powershell/module/azurerm.datalakestore/set-azurermdatalakestoreitemaclentry?view=azurermps-6.13.0 accepts ID, so looks like the WebHDFS REST API may accept ID after all.
So the request here is to see whether AcLEntry class can accept "user Id" instead of name to avoid the behavior of adding old principal when programmatically setting the ACL using Java SDK
AclEntry class in Java SDK doesn't allow user id to be passed and expects Name of the user as paramater.
AclEntry newAcl = new AclEntry(AclScope.ACCESS,AclType.USER,name,AclAction.ALL);
When a service principal is deleted and recreated with the same name in AAD then AclEntry class ended up adding old service principal even after explicitly removing the old service principal from the file or directory access. While the behavior is questioned in a different channel, checking here in the SDK to see if this class can be improved to accept ID as parameter. I am not sure since this wrapper is referring on WebHDFS REST API but i can see that PowerShell command https://docs.microsoft.com/en-us/powershell/module/azurerm.datalakestore/set-azurermdatalakestoreitemaclentry?view=azurermps-6.13.0 accepts ID, so looks like the WebHDFS REST API may accept ID after all.
So the request here is to see whether AcLEntry class can accept "user Id" instead of name to avoid the behavior of adding old principal when programmatically setting the ACL using Java SDK