package de.flower.rmt.service.validation;
import de.flower.common.validation.spring.IBeanValidator;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.model.dto.IPasswordValidator;
import de.flower.rmt.model.dto.Password;
import de.flower.rmt.service.IUserManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.encoding.PasswordEncoder;
import org.springframework.stereotype.Service;
/**
* @author flowerrrr
*/
@Service
public class PasswordValidator implements IBeanValidator, IPasswordValidator {
@Autowired
private IUserManager userManager;
@Autowired
private PasswordEncoder passwordEncoder;
@Override
public boolean isValid(final Object bean) {
Password password = (Password) bean;
User user = userManager.loadById(password.getUserId());
return passwordEncoder.isPasswordValid(user.getEncryptedPassword(), password.getOldPassword(), null);
}
}