Я не знаком с ACL Spring Security, но я считаю, что типичные ACL требуют, чтобы вы нажимали каждый узел, чтобы узнать, есть ли у данного участника разрешения на этом узле. Я не знаю, собираетесь ли вы найти способ обойти эту проблему, не вызывая canRead () или canAccess () (или что-то подобное) каждый раз на каждом представляемом вами узле.
В сторону:
Вы оценивали, используя что-то, что соответствует JSR-170 (Java Content Repository или 'JCR'), вместо того, чтобы внедрять собственную полную реализацию системы управления документами? Потенциально вы могли бы использовать вещи в JCR для бэкэнда и просто написать поверх него веб-интерфейс. У Jackrabbit есть реализация ACL по умолчанию, которой должно быть достаточно.