Я создал REST API:Безопасный объект обновления в апи отдыха
GET metohd на/API/адрес возвращает адрес для текущего пользователя. Затем пользователь может редактировать некоторые данные и отправлять отредактированные json по POST в/api/address. Но пользователь также может просто отправить preapred json, чтобы отдохнуть, не опуская пользовательский интерфейс.
Например:
{id:2, street: Madison, flatNumber: 14}
Тогда в AddressService:
public void updateUser(AddressDto address) {
repository.findOneById(address.getId()).ifPresent(a -> {
a.setFlatNumber(address.getFlatNumber());
respository.update(a);
});
}
Но пользователь может отправить приготовленную JSON с другим идентификатором. И отредактируйте адрес, который ему не принадлежит. Как предотвратить эту ситуацию?
Я хочу убедиться, что пользователи могут обновлять свои данные. Должен ли я каждый раз проверять, имеет ли сущность связь с зарегистрированным пользователем?
Спасибо за ваш ответ. Фактически адресная сущность - простой пример. В моем приложении у меня более сложные отношения с сущностями. Идея, которую вы предложили, хороша. Честно говоря, я надеялся, что есть более элегантное решение. Поэтому, если какой-нибудь лучший солетон не появится через какое-то время, я приму этот ответ. – Kamil