@VisibleForTesting
    File getLocalUserFileCacheDir(String userName) {
        return LocalizedResource.getLocalUserFileCacheDir(localBaseDir, userName).toFile();
    }
@Test
    public void testFailAcls() {
        assertThrows(AuthorizationException.class, () -> {
            try (TmpPath tmp = new TmpPath()) {
                Map<String, Object> conf = new HashMap<>();
                // set clean time really high so doesn't kick in
                conf.put(DaemonConfig.SUPERVISOR_LOCALIZER_CACHE_CLEANUP_INTERVAL_MS, 60 * 60 * 1000);
                // enable blobstore acl validation
                conf.put(Config.STORM_BLOBSTORE_ACL_VALIDATION_ENABLED, true);

                String topo1 = "topo1";
                String key1 = "key1";
                TestLocalizer localizer = new TestLocalizer(conf, tmp.getPath());

                ReadableBlobMeta rbm = new ReadableBlobMeta();
                // set acl so user doesn't have read access
                AccessControl acl = new AccessControl(AccessControlType.USER, BlobStoreAclHandler.ADMIN);
                acl.set_name(user1);
                rbm.set_settable(new SettableBlobMeta(Collections.singletonList(acl)));
                when(mockBlobStore.getBlobMeta(anyString())).thenReturn(rbm);
                when(mockBlobStore.getBlob(key1)).thenReturn(new TestInputStreamWithMeta(1));
                File user1Dir = localizer.getLocalUserFileCacheDir(user1);
                assertTrue(user1Dir.mkdirs(), "failed to create user dir");

                LocalAssignment topo1Assignment = constructLocalAssignment(topo1, user1, Collections.emptyList());
                PortAndAssignment topo1Pna = new PortAndAssignmentImpl(1, topo1Assignment);
                // This should throw AuthorizationException because auth failed
                localizer.getBlob(new LocalResource(key1, false, false), topo1Pna, null);
            }
        });
    }