Jackson @JsonIgnore поля, основанные на ролях безопасности Spring

Во всех моих веб-приложениях Spring REST у меня много доменных объектов и DTO.

Мне нужно отфильтровать некоторые доменные объекты или поля DTO, основываясь на весенних ролях безопасности пользователя, который делает запрос. Я хочу, чтобы Джексон отфильтровал выходной JSON, чтобы разрешить / запретить сериализацию определенных полей класса на основе ролей Spring GrantedAuthorities пользователя, который пытается получить доступ к ресурсу.

Я не могу создать новый DTO для каждой отдельной комбинации представлений, потому что это будет беспорядок.

Я нашел это решение:
Spring 3.2: фильтрация вывода JSON Джексона на основе роли Spring Security
Но это не работает, фильтр применяется только один раз, когда первый пользователь входит в систему. Тогда все остальные пользователи получают такую ​​же фильтрацию, независимо от их роли.

Я не могу объяснить мою проблему лучше, чем Рэй Холланд в этом посте:
http://jackson-users.ning.com/forum/topics/jackson-custom-serialization
Это та же самая проблема, которую я пытаюсь решить в течение нескольких дней.

Я не мог найти чистый способ сделать это до сих пор.

Ответы на вопрос(1)

Ваш ответ на вопрос