Код: Выделить всё
REST,Контроллеры взаимодействуют со службой для получения данных.
В зависимости от уровня авторизации пользователя я хочу изменить данные ответа перед отправкой их обратно.
Например:
- Если пользователь является Администратором, он должен видеть все поля, такие как имя пользователя и адрес других пользователей.
- Если пользователь < strong>Обычный пользователь не должен видеть такие конфиденциальные поля, как имя пользователя и адрес других людей.
- Единый уровень обслуживания: я хочу, чтобы уровень обслуживания был общим и допускал повторное использование на нескольких контроллерах, но применять разные правила авторизации в каждом контроллере.
- Несколько уровней авторизации: на разных контроллерах могут быть разные уровни авторизации, и мне нужно решение, которое позволит мне адаптировать это в чистом и удобном для обслуживания виде. способ.
- Динамическое раскрытие полей: мне нужен механизм, который динамически настраивает поля, возвращаемые клиенту, в зависимости от уровня авторизации пользователя.
- Контроллеры разделялись в зависимости от ролей пользователей или типов авторизации, но все они подключались к одна и та же базовая служба.
- Каждый контроллер возвращает соответствующие поля только в зависимости от авторизации пользователя.
Пример:
Рассмотрим метод службы, который возвращает объект User с такими полями, как:
Код: Выделить всё
public class User {
private String username;
private String address;
private String email;
private String phone;
// getters and setters
}
Код: Выделить всё
{
"username": "morteza.j8",
"address": "Mashhad",
"email": "morteza@jalambadani.ir",
"phone": "09123456789"
}
Код: Выделить всё
{
"email": "morteza@jalambadani.ir",
"phone": "09123456789"
}
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ontrollers