我创建了rest api:
获取metohd on / api / address返回当前登录用户的地址。然后用户可以编辑一些数据并通过POST将编辑过的json发送到/ api / address。但是用户也可以发送preapred json来休息,而不是UI。
例如:
{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);
});
}
但是用户可以使用不同的id发送准备好的json。并编辑不属于他的地址。如何防止这种情况?
我想确保用户是否只能更新他们的数据。我应该每次检查实体是否与登录用户有关吗?
答案 0 :(得分:0)
在updateUser
方法中,修改代码以根据用户提取记录。
repostiory.findAddressByUserAndId(user, address.getId())
如果您每个用户只需要一个地址,请考虑使用地址记录的ID。