2025-02-28 21:25:24 +01:00

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);
}
}