ogólnie to kod jest raczej słaby, a przyczyną błędu jest to że validator uruchamia się przy zapisywaniu do bazy a przed zapisaniem do bazki robisz
public void saveUser(User user) {
user.setPassword(passwordEncoder.encode(user.getPassword())); -> $2a$10$skEEkO0fV5cK3sjs6J23hOsX9JwELVCGWBPJriAuOpiPwwIuK10Le
user.setConfirmedPassword(passwordEncoder.encode(user.getConfirmedPassword())); -> $2a$10$FJ2OEfnixoTzu1vQZkK3Lulxp8f4UujBTQe3ZBTMw2C6o5.T//l1K
userRepository.save(user);
}
ogólnie to wydziel sobie DTO
zrób warstwy domenowo,
Używaj optionali
JSF [*]
W kontrolerach nie trzymaj logiki biznesowej np
@PostMapping("/admin/addAdmin") <-- crud
public String postAddAdmin <-- co to za nazwa metody(User user) throws MessagingException {
String password = userService.generateRandomPassword(); <---*
user.setPassword(password);<---*
userService.saveUser(user); * to wszystko powinno znaleźć się w tej metodzie, nazwa metody jakąś inną np createNewAccount
emailService.sendEmail(user.getEmail(), "Hasło do portalu", "Twoje hasło to: " + password);<---*
return "redirect:/allAdmins";
}
formatowanie
donationRepository.findAll().stream().mapToInt(a -> a.getQuantity()).sum();
->
donationRepository.findAll()
.stream()
.mapToInt(Donation::getQuantity)
.sum();
pisz testy
podłącz sobie h2
ConfirmationToken zamiast tego użyj sobie JWT i sobie skonfiguruj filtry