【发布时间】:2015-07-27 10:36:16
【问题描述】:
我应该如何使用 Spring Data REST 自动对我的实体提交的纯密码字段进行编码?
我正在使用 BCrypt 编码器,我想在客户端通过 POST、PUT 和 PATCH 发送请求时自动对请求的密码字段进行编码。
@Entity
public class User {
@NotNull
private String username;
@NotNull
private String passwordHash;
...
getters/setters/etc
...
}
首先我尝试使用@HandleBeforeCreate 和@HandleBeforeSave 事件侦听器来解决,但它的参数中的用户已经合并,所以我无法区分用户的新密码或旧密码哈希:
@HandleBeforeSave
protected void onBeforeSave(User user) {
if (user.getPassword() != null) {
account.setPassword(passwordEncoder.encode(account.getPassword()));
}
super.onBeforeSave(account);
}
是否可以在 setter 方法上使用 @Projection 和 SpEL?
【问题讨论】:
标签: spring-data-rest