0

我在从表单绑定数据时遇到问题,我的 User 类有一个对密码进行哈希处理的构造函数,问题是如果我从表单中获取用户,密码将存储为纯文本。

我的用户构造函数:

 public User(String username, String completeName, String password,
        String email) {
    this.username = username.toLowerCase();
    this.email = email;
    this.registrationDate = new Date();
    this.completeName = completeName;
    try {
        String[] passAndSalt = PasswordHash.createHash(password).split(":");
        this.salt = passAndSalt[0];
        this.password = passAndSalt[1];
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (InvalidKeySpecException e) {
        e.printStackTrace();
    }
}

我的控制器:

public static Result addUser() {
    Form<User> userForm = Form.form(User.class).bindFromRequest();
    if (!userForm.hasErrors()) {
        User formUser = userForm.get();
        formUser.save();
        return redirect(routes.Application.index());
    } else {
        return badRequest(registerUser.render(userForm));
    }
}

我可以在保存用户之前对密码进行哈希处理,但我想知道 Play 是否可以使用我定义的构造函数。

使用播放!2.1.1 版

4

0 回答 0