package org.to.telegramfinalproject.Server; import java.util.UUID; import org.to.telegramfinalproject.Database.userDatabase; import org.to.telegramfinalproject.Models.User; import org.to.telegramfinalproject.Security.PasswordHashing; public class AuthService { private final userDatabase userDb = new userDatabase(); public AuthService() { } public boolean register(String user_id, String username, String password, String profile_name) { if (!this.userDb.existsByUsername(username) && !this.userDb.existsByUserId(user_id)) { String passwordRegex = "\\b(?=[^\\s]*[A-Z])(?=[^\\s]*[a-z])(?=[^\\s]*\\d)(?=[^\\s]*[!@#$%^&*])[^\\s]{8,}\\b"; if (!password.matches(passwordRegex)) { System.out.println("Password doesn't Valid(At list one capital and one special char(!@#$%^&*), minimum 8 char "); return false; } else { UUID uuid = UUID.randomUUID(); password = PasswordHashing.hash(password); User user = new User(user_id, uuid, username, password, profile_name); return this.userDb.save(user); } } else { System.out.println("Username/ user id is already taken"); return false; } } public User login(String username, String password) { User user = this.userDb.findByUsername(username); if (user == null) { System.out.println("User not found."); return null; } else if (!PasswordHashing.verify(password, user.getPassword())) { System.out.println("Incorrect password"); return null; } else { return user; } } public boolean loginCheck(String username , String password){ User user = userDb.findByUsername(username); String pass = user.getPassword(); password = PasswordHashing.hash(password); String Username = user.getUsername(); boolean login = false; if(user!= null && Username.equals(username)&& pass.equals(password)){ login = true; } return login; } }