问题场景
用户注册时, 用户需要填写用户名和密码. 使用spring controller来接收请求数据并验证是否.
对于密码字段, 在实体类中我们增加了
- @JsonIgnore
使用此注解, 在转换成json时忽略密码此字段, 避免敏感信息外泄 - @NotNull
使用此注解, 要求用户在注册时必须填写密码.
问题原因
前端数据以json格式传递过来时, 由于使用了@JsonIgnore注解, 在做数据校验时获取到的密码为null, 因此无法通过校验.
问题解决
使用@JsonProperty代替@JsonIgnore:
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
读写分离, 避免校验和隐藏的冲突问题