Рассмотрим API-интерфейс Spring MVC, в котором контроллер имеет 2 конечные точки. Первая конечная точка возвращает сотрудника, а второй отдел.
Ради простоты сущности выглядят так:
public class Employee {
private String firstName;
private String lastName;
private Double Salary;
}
и
public class Department {
private String name;
private String suiteNumber;
private Employee manager;
}
Предположим, что для каждого запроса к любой из 2-х точек у нас есть компонент типа RequestData (в области запроса), который имеет поле
Map<String, List<String>> userPermissions;
Примером разрешений пользователя (представленных в JSON) будет:
{
"Employee": [ "firstName", "lastName" ],
"Department": [ "name", "suiteNumber" ]
}
Этот конкретный пользователь не имеет доступа к зарплате сотрудника и руководителю отдела. Другой пользователь может иметь совершенно другой набор разрешений.
Как мой сопоставитель объектов может получить доступ к объекту RequestData запроса и исключить поля, к которым пользователь не имеет доступа, когда происходит сериализация?
Заранее спасибо,
Bruno