隐藏客户端看到的JSON字段

时间:2015-07-09 20:22:40

标签: json spring mongodb rest jackson

我正在实施一个网络应用程序,用户输入他们的个人信息将其存储到数据库中,在本例中为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的类。

由于

0 个答案:

没有答案