假设在我的系统中用户想要更改密码。他发送PUT
请求,然后调用UserRepository.save()
。如果他遇到请求,他可能会设置[user].admin_rights=1
或类似。
现在我可以将@Column( updatable=false )
添加到相应的字段中:
@Entity public class User {
@Column(updatable=false) private Boolean admin_rights;
// ....
,但管理员可能需要在某一天更新此字段!
我是否需要为此编写自定义查询,指定要更新的列?或者有没有办法在User
实体中解决此权限问题?
答案 0 :(得分:3)
应用程序有责任强制执行此类权限。在端点上,您应该在尝试保存之前验证传入实体是否有效。在这种情况下,“有效”意味着用户不会试图不恰当地提升他们的权利。应用程序绝不应盲目信任用户发送的数据。