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