我有以下FacesValidator:
@RequestScoped
@FacesValidator("passwordValidator")
public class PasswordValidator implements Validator {
@PersistenceUnit(unitName = "TradeCenterPU")
private EntityManagerFactory emf;
@Override
public void validate(final FacesContext context, final UIComponent comp, final Object values) throws ValidatorException {
String password = (String)values;
System.out.println("passwordValidator():" + password);
EntityManager em = emf.createEntityManager();
Query q = em.createNamedQuery("user.findByUsername");
q.setParameter("username", context.getExternalContext().getRemoteUser());
User user = (User)q.getSingleResult();
String pwhash = DigestUtils.md5Hex(password + user.getSalt());
System.out.println("User: " + user.getUsername() + ", PwHash: " + pwhash + ", Password: " + user.getPassword());
if (!pwhash.equals(user.getPassword())) {
System.out.println(comp.getClientId(context) + ": Old …Run Code Online (Sandbox Code Playgroud)