This repository has been archived on 2022-07-05. You can view files and clone it, but cannot push or open issues/pull-requests.
steleks_backend/users/src/main/java/ba/steleks/security/UserPasswordEntityListener....

47 lines
1.2 KiB
Java

package ba.steleks.security;
import ba.steleks.AutowireHelper;
import ba.steleks.model.User;
import ba.steleks.repository.UserRolesJpaRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import javax.persistence.PostPersist;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import java.util.HashSet;
/**
* Created by ensar on 30/05/17.
*/
@Component
public class UserPasswordEntityListener {
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private UserRolesJpaRepository userRolesJpaRepository;
@PrePersist
@PreUpdate
public void onUserUpdate(User user) {
AutowireHelper.autowire(this, passwordEncoder);
if(user.getPassword() != null) {
user.setPasswordHash(passwordEncoder.encode(user.getPassword()));
}
}
@PostPersist
public void postUserCreated(User user) {
AutowireHelper.autowire(this, userRolesJpaRepository);
if (user.getUserRoles() == null) {
user.setUserRoles(new HashSet<>());
}
user.getUserRoles().add(userRolesJpaRepository.findOne(1L));
}
}