Web services 如何使用Doctrine2构建没有敏感字段的API?

Web services 如何使用Doctrine2构建没有敏感字段的API?,web-services,doctrine-orm,soa,Web Services,Doctrine Orm,Soa,实际上,我正在Zend框架项目中使用Doctrine2 我正在构建一个用作Restfull Web服务的API,实际上我正在使用一个实体序列化程序和/或一个数组结果 然而,我的问题是我的实体是完全序列化的,因此会返回密码或电子邮件等字段 在处理私有调用时,这不是问题,但对于公共API来说是问题 我如何解决这个问题?您是否考虑过以下备选方案: 加密敏感信息 使用安全的https连接 返回一个bean副本,但不包含您想要的信息(像dozer of morph这样的库可以完成这项工作) 最后一个选

实际上,我正在Zend框架项目中使用Doctrine2

我正在构建一个用作Restfull Web服务的API,实际上我正在使用一个实体序列化程序和/或一个数组结果

然而,我的问题是我的实体是完全序列化的,因此会返回密码或电子邮件等字段

在处理私有调用时,这不是问题,但对于公共API来说是问题


我如何解决这个问题?

您是否考虑过以下备选方案:

  • 加密敏感信息
  • 使用安全的https连接
  • 返回一个bean副本,但不包含您想要的信息(像dozer of morph这样的库可以完成这项工作)

最后一个选项实际上是一个很好的实践,因为有时在表示层、服务层或API层中使用实体Bean不是一个好主意。

hi,谢谢你的回答,加密信息,它是为密码完成的(很好,它是散列的),但对于电子邮件来说并不方便,使用https,但最终用户仍然可以得到结果,最后一个选项确实是正确的解决方案,但是我不知道如何在不影响性能的情况下实现它;他们使用反射API,是的,这可能会很慢。但是制作bean的原始副本(比如returnedBean.setX(entityBean.getX());不应该影响全局性能(heap+n指令中的1个对象)。