Я хочу фильтровать коллекцию, возвращаемую методом службы. Эта фильтрация включала бы вызов другого метода службы и, следовательно, я не собираюсь для @PostFilter
, так как он вызывает выражение SPEL
внутри аннотации для каждого элемента коллекции. Вместо этого я использую @PostAuthorize
следующим образом:spring security - Как изменить возвращаемый объект @PostAuthorize в пользовательском методе SPEL?
@PostAuthorize("canAssignToUser(returnObject)")
List<UserInfo> getUsers(int userId);
В canAssignToUser
, я стараюсь, чтобы удалить пользователей из списка возврата переданного ему. По-видимому, это проблема, и есть некоторые ограничения на изменение возвращаемого списка. Как изменить возвращаемый список из метода с помощью аннотаций на уровне метода и без вызова SPEL для каждого элемента списка.
Перед вызовом метода оценкиAsBoolean для postAuthorize он устанавливает возвращаемый объект в обработчик выражения. Фактически мы можем получить всю коллекцию в пользовательском выражении SPEL. Единственная проблема заключается в том, что мы не можем ее модифицировать. И моя проблема заключается не в том, что я разбираю каждый элемент перед его удалением, его для проверки каждого элемента, мой пользовательский метод SPEL вызывается. Я хочу, чтобы мой метод вызывался только один раз, при этом вся коллекция передавалась ему, что Я могу изменить его ... но у тебя не всегда можно получить все, что захочет :) – Daud