Как преобразовать введенный на форму пароль в хэшированный вид?
Здравствуйте. Подскажите, пожалуйста, как правильно сделать, чтобы введенный при регистрации пользователем пароль преобразовывался в хэшированный вид, но уже после того как пройдет валидация на форме. У меня пароль хэшируется, но не возможно, например, сделать ограничение на количество введенных символов, так как сгенерированный хэшированный пароль всегда состоит из 60 символов, а также для полей password и confirmPassword генерируются разные пароли.
package com.springapp.mvc.domain;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "user")
public class User implements Serializable{
@Id
@GeneratedValue
private Long id;
private String name;
private String surname;
@Column(columnDefinition = "enum('male','female')")
@Enumerated(EnumType.STRING)
private Gender gender = Gender.male;
private Date birthdate;
private String address;
private String tel;
private String email;
private String login;
private String password;
private String confirmPassword;
private boolean enabled;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;
private String comment;
...
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
//this.password = password;
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(password);
this.password = hashedPassword;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
//this.confirmPassword = confirmPassword;
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(confirmPassword);
this.confirmPassword = hashedPassword;
}
...
}
signup.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page session="false" %>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="calendar" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<t:template>
<form:form method="post" action="/add" commandName="user">
<div class="form">
<table>
...
<tr>
<td><form:label path="login">
<spring:message code="label.login"/>:</form:label></td>
<td><form:input path="login"/></td>
<td><span class="error2"><form:errors path="login"/></span></td>
</tr>
<tr>
<td><form:label path="password">
<spring:message code="label.password"/>:</form:label></td>
<td><form:password path="password"/></td>
<td><span class="error2"><form:errors path="password"/></span></td>
</tr>
<tr>
<td><form:label path="confirmPassword">
<spring:message code="label.confirmpassword"/>:</form:label></td>
<td><form:password path="confirmPassword"/></td>
<td><span class="error2"><form:errors path="confirmPassword"/></span></td>
</tr>
...
<tr>
<td colspan="3"><span class="signup-button"><input type="submit"
value="<spring:message code="label.add"/>"/></span>
</td>
</tr>
</table>
</div>
</form:form>
</t:template>