package com.piggymetrics.auth.service; import com.piggymetrics.auth.domain.User; import com.piggymetrics.auth.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.util.Assert; @Service public class UserServiceImpl implements UserService { private final Logger log = LoggerFactory.getLogger(getClass()); private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); @Autowired private UserRepository repository; @Override public void create(User user) { User existing = repository.findOne(user.getUsername()); Assert.isNull(existing, "user already exists: " + user.getUsername()); String hash = encoder.encode(user.getPassword()); user.setPassword(hash); repository.save(user); log.info("new user has been created: {}", user.getUsername()); } }