我正在实施一个网络应用程序,用户输入他们的个人信息将其存储到数据库中,在本例中为MongoDB。这很像地址簿。这些服务是使用REST API(我使用Spring框架)实现的,客户端可以调用GET请求来查看其他人的个人信息,POST可以添加自己的信息,PUT可以更新。数据库管理员可以使用DELETE删除用户。
我已经为服务器端的服务实现了所有CRUD操作。但我有一个问题:
当客户端为特定用户调用GET以查看其信息时,请求将作为JSON字符串返回,其中密码字段可见。显然,我不希望客户端看到密码。
现在,我尝试在服务器端的模型类顶部添加@JsonIgnoreProperties({"password"})
。虽然这很有效,但客户端无法看到密码,密码也不会存储在具有此实现的MongoDB数据库中。因为当我调用db.users.find()。pretty()时,为了列出集合中的所有文档,我没有看到"密码"任何用户的字段。
我需要一些方法将密码存储在数据库中,但无法被客户端查看。
以下是通过用户名找到用户的GET方法之一:
/* Get user by username */
@RequestMapping(method=RequestMethod.GET, value="/getByUsername")
public @ResponseBody User getUserByUsername(@RequestParam("username") String username) {
return repo.findByUsername(username);
}
Model类只是一个包含一堆String变量,getter和setter的类。
由于