41 lines
1.3 KiB
Java
41 lines
1.3 KiB
Java
package com.example.hangry.services;
|
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
import org.springframework.stereotype.Service;
|
|
import com.example.hangry.*;
|
|
|
|
@Service
|
|
public class UserService {
|
|
|
|
private final UserRepository userRepository;
|
|
private final PasswordEncoder passwordEncoder;
|
|
|
|
// Dependency Injection (Spring kümmert sich darum)
|
|
public UserService(UserRepository userRepository) {
|
|
this.userRepository = userRepository;
|
|
this.passwordEncoder = new BCryptPasswordEncoder(); // Initialisierung von BCrypt
|
|
}
|
|
|
|
// Neuen Benutzer erstellen (mit Passwort-Hashing)
|
|
public User createUser(User user) {
|
|
user.setPassword(passwordEncoder.encode(user.getPassword())); // Passwort hashen
|
|
return userRepository.save(user);
|
|
}
|
|
|
|
// Benutzer anhand des Benutzernamens suchen
|
|
public User getUserByUsername(String username) {
|
|
return userRepository.findByUsername(username);
|
|
}
|
|
|
|
// Benutzer anhand der E-Mail suchen
|
|
public User getUserByEmail(String email) {
|
|
return userRepository.findByEmail(email);
|
|
}
|
|
|
|
// Passwort überprüfen
|
|
public boolean checkPassword(String rawPassword, String hashedPassword) {
|
|
return passwordEncoder.matches(rawPassword, hashedPassword);
|
|
}
|
|
}
|