diff --git a/src/main/java/model/User.java b/src/main/java/model/User.java index 0a49865..28590b2 100644 --- a/src/main/java/model/User.java +++ b/src/main/java/model/User.java @@ -1,4 +1,43 @@ package model; +import password.PasswordHash; + public class User { + private final String userName; + private final String phoneNumber; + private final String eMail; + private final PasswordHash password; + + public User(String userName, String phoneNumber, PasswordHash password, String eMail) { + this.userName = userName; + this.phoneNumber = phoneNumber; + this.eMail = eMail; + this.password = password; + + if ( userName == null || userName.isBlank() ) { + throw new IllegalArgumentException("Username has to be filled in"); + } + + if ( eMail == null || eMail.isBlank() ) { + throw new IllegalArgumentException("E-mail has to be filled in"); + } + + if ( phoneNumber == null || phoneNumber.isBlank() ) { + throw new IllegalArgumentException("Phonenumber has to be filled in"); + } + + if ( phoneNumber.length() != 8 ) { + throw new IllegalArgumentException("Fill in a phonenumber with 8 digits"); + } + } + + public String getUsername() { return userName; } + + public String getPhoneNumber() { return phoneNumber; } + + public String getEMail() { return eMail; } + + public PasswordHash getPasswordHash() { return password; } + + } diff --git a/src/main/java/password/PasswordHash.java b/src/main/java/password/PasswordHash.java index 796f855..cda7ced 100644 --- a/src/main/java/password/PasswordHash.java +++ b/src/main/java/password/PasswordHash.java @@ -1,4 +1,26 @@ package password; +import java.security.MessageDigest; + public class PasswordHash { + + public static String hash(String password) { + try { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + byte[] hashedBytes = md.digest(password.getBytes()); + + StringBuilder sb = new StringBuilder(); + for (byte b : hashedBytes) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } catch (Exception e) { + throw new RuntimeException("Feil ved hashing: ", e); + } + } + + public static boolean mathches(String password, String hashedPassword) { + String newHash = hash(password); + return newHash.equals(hashedPassword); + } } diff --git a/src/main/java/register/UserRegister.java b/src/main/java/register/UserRegister.java index db37c81..398cee3 100644 --- a/src/main/java/register/UserRegister.java +++ b/src/main/java/register/UserRegister.java @@ -1,4 +1,20 @@ package register; +import java.util.HashMap; +import java.util.Map; +import model.User; + public class UserRegister { + private final Map users; + + + public UserRegister(String userName, User user) { + this.users = new HashMap<>(); + } + + public void addUser(User user) { + if (!users.containsKey(user.getUsername())) { + users.put(user.getUsername(), user); + } + } } diff --git a/src/main/java/service/AuthService.java b/src/main/java/service/AuthService.java new file mode 100644 index 0000000..c60b35e --- /dev/null +++ b/src/main/java/service/AuthService.java @@ -0,0 +1,4 @@ +package service; + +public class AuthService { +}