06-ZPRPLI0/src/main/java/com/s477603/movies/service/UserManager.java

56 lines
1.6 KiB
Java

package com.s477603.movies.service;
import com.s477603.movies.repository.UserRepository;
import com.s477603.movies.document.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.UserDetailsManager;
import org.springframework.stereotype.Service;
import java.text.MessageFormat;
import java.util.UUID;
@Service
public class UserManager implements UserDetailsManager {
@Autowired
UserRepository userRepository;
@Autowired
PasswordEncoder passwordEncoder;
@Override
public void createUser(UserDetails user) {
((User) user).setPassword(passwordEncoder.encode(user.getPassword()));
((User) user).setId(UUID.randomUUID().toString());
userRepository.save((User) user);
}
@Override
public void updateUser(UserDetails user) {
}
@Override
public void deleteUser(String username) {
}
@Override
public void changePassword(String oldPassword, String newPassword) {
}
@Override
public boolean userExists(String username) {
return userRepository.existsByUsername(username);
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return userRepository.findByUsername(username)
.orElseThrow(() -> new UsernameNotFoundException(MessageFormat.format("username {0} not found", username)));
}
}