Используя Spring Data, Spring Security и Hibernate, есть ли способ отфильтровать столбцы, выбранные на основе GrantedAuthories, которые есть у текущего пользователя?
Так, например:
Entity
{
field1;
@HasGrantedAuthority('XYX')
field2;
field3;
}
Учитывая приведенный выше пример, я хочу, чтобы field1 и field3 всегда возвращались, но field2 только если пользователь имеет GrantedAuthority == 'XYZ'.
SELECT * FROM Entity
vs
SELECT field1, field3 FROM Entity
Я рассмотрел использование @JsonView Джексона, однако это фильтрует данные обратно клиенту, что хорошо, но я хочу отфильтровать их до этого и не дать приложению на стороне сервера даже иметь закрытый столбец. https://www.baeldung.com/spring-security-role-filter-json
Кажется, @Filter в Hibernate отфильтровывает всю строку, но я просто хочу определенный столбец. Кроме того, не похоже, что есть встроенная интеграция со Spring Data.