У меня есть запрос Hibernate, который возвращает мне список отображаемых элементов. Мне нужно проверить, доступен ли текущий пользователь для просмотра каждого из возвращаемых элементов. Я могу сделать это примерно так:Как я могу проверить разрешения Shiro для списка элементов?
for (Element e : elements) {
SecurityUtils.getSubject().hasPermission("element:view:" + e.id);
}
но этот код будет генерировать x запросов к базе данных на каждый элемент. Таким образом, скорость проверки будет равна O (n).
Как я могу улучшить свое решение? Можно ли получить скорость O (1)?
Мне нужно фильтровать элементы. Я думаю, что если у пользователя нет доступа к 1 элементу 'isPermitedAll', он вернет' false' для всех элементов –