【问题标题】:JSON serialization for Passwords when Testing测试时密码的 JSON 序列化
【发布时间】:2020-05-10 14:44:57
【问题描述】:

我目前正在编写一个 REST 控制器,用于使用 Spring Boot 处理用户配置文件/活动。 对于生产,我目前在响应中隐藏了用户密码:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;

但是,当我编写集成测试并向控制器发出 http 请求时,我想序列化我的用户对象,但包含密码,以便我可以测试功能,例如注册新用户。这是使用:

@Autowired
private ObjectMapper objectMapper;
...
objectMapper.writeValueAsString(user);

是否有我可以使用的测试注释,或者是否有其他可用的序列化方法将忽略@JsonProperty 注释并允许序列化密码?

【问题讨论】:

    标签: java json spring


    【解决方案1】:

    我不知道有什么方法可以做到这一点。我能想到的唯一可能的事情是拥有一个interface,其中有2 个Profile 类实现它,一个没有JsonProperty,一个有。使用@Profile注解切换它们

    如果序列化不是强制性的,那么您仍然可以使用来自getter 的值进行断言。如果序列化是强制性的,那么我只能想到上面的替代方案。

    【讨论】:

      猜你喜欢
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      相关资源
      最近更新 更多