【发布时间】:2021-04-24 10:56:44
【问题描述】:
所以,我想用password 字段保留一个用户,但我不想显示返回
password。不知何故,我只想序列化该字段以保持不变,但在 findById(id)
或findAll() 此字段不得显示。
用户将填写的字段:
{
"firstName" : "foo",
"lastName" : "bar",
"password" : "MyNewPass",
"email": "john@doe.net"
}
我将持久化的数据:
{
"id": "1",
"firstName" : "foo",
"lastName" : "bar",
"email": "john@doe.net",
"password" : "$2y$12$0bpN8aTD5WebsGWoXK90yuJcDczNmUIAOduWXoHKfEw7GOidpQX1u",
"createdDate": "01/01/2077",
"active": "false"
}
我希望用户(前端)看到的响应:
{
"id": "1",
"firstName" : "foo",
"lastName" : "bar",
"email": "john@doe.net",
"active": "false"
}
如果我删除getPassword(),我将无法验证登录会话,因为我需要在内部检查密码哈希。我可以创建 3 个不同的类,但是会有很多重复的代码。
对于这种情况有更好的方法吗?遗产?某种注释?接口?我失去了什么?
我目前正在处理的 Repo:customer-service
【问题讨论】:
-
你能显示对象的类定义吗?你用什么库来序列化它?
-
我正在使用 JAX-RS 并且 Class Def 是我坚持的数据的中间部分,目前我正在手动将我不想显示的字段设置为 null 它们所在的位置调用。
-
@JsonIgnore 工作吗?
-
可以,但是当我需要从数据库中检索用户的信息时,
password字段会被忽略,所以我无法与用户的输入进行比较以检查他是否输入了有效的密码。跨度> -
这样的话,就是骗人的!现在打烊了……
标签: java postgresql jpa jax-rs quarkus