Add JWT authentication

This commit is contained in:
DmitriiCravcenco
2023-10-03 12:20:14 +03:00
parent f8b0c58034
commit 5e0000d532
12 changed files with 109 additions and 93 deletions

View File

@@ -1,20 +1,35 @@
package com.faf223.expensetrackerfaf.model;
package com.faf223.expensetrackerfaf.model;
import jakarta.persistence.*;
import lombok.Data;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Entity(name = "credentials")
public class Credential {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long credentialId;
@Data
@Entity(name = "credentials")
@NoArgsConstructor
@AllArgsConstructor
public class Credential {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long credentialId;
@ManyToOne
@JoinColumn(name = "user_uuid")
private User user;
@ManyToOne
@JoinColumn(name = "user_uuid")
private User user;
private String email;
private String password;
}
private String email;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
public Credential(User user, String email, String password) {
this.user = user;
this.email = email;
this.password = password;
this.role = Role.USER;
}
}

View File

@@ -2,5 +2,5 @@
package com.faf223.expensetrackerfaf.model;
public enum Role {
UNREGISTERED, REGISTERED, ADMIN;
USER, ADMIN
}

View File

@@ -9,28 +9,32 @@ import lombok.NoArgsConstructor;
import java.util.List;
@Entity
@Entity(name = "users")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String firstName;
private String lastName;
private String email;
private String password;
@Column(name = "user_uuid")
@GeneratedValue(strategy = GenerationType.UUID)
private String userUuid;
@Enumerated(EnumType.STRING)
private Role role;
@Column(name = "name")
private String firstName;
@Column(name = "surname")
private String lastName;
@Column(name = "username")
private String username;
@Transient
private String password;
@OneToMany(mappedBy = "user")
private List<Expense> expenses;
@OneToMany(mappedBy = "user")
private List<Income> incomes;
}