56 lines
1.6 KiB
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)));
|
|
}
|
|
}
|