Security implementation

This commit is contained in:
harish
2024-08-21 18:21:20 +05:30
parent 324490da69
commit 7a080504aa
30 changed files with 721 additions and 78 deletions

View File

@@ -0,0 +1,16 @@
package net.gepafin.tendermanagement.model;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class BaseBean {
private Long id;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
}

View File

@@ -0,0 +1,18 @@
package net.gepafin.tendermanagement.model.request;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class LoginReq {
@NotBlank(message = "{email.not.blank}")
@Email(message = "{email.invalid}")
private String email;
@NotEmpty
private String password;
private Boolean rememberMe;
}

View File

@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
@@ -14,19 +15,20 @@ import java.time.LocalDateTime;
@Setter
public class UserReq {
private String password;
private String confPassword;
@NotBlank(message = "{email.not.blank}")
@Email(message = "{email.invalid}")
private String email;
@NotEmpty
private String password;
@NotEmpty
private String confPassword;
private String firstName;
private String lastName;
private String phoneNumber;
@NotEmpty
private Long roleId;
private String organization;
@@ -39,6 +41,4 @@ public class UserReq {
private String status;
private LocalDateTime lastLogin;
}

View File

@@ -0,0 +1,42 @@
package net.gepafin.tendermanagement.model.response;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class LoginResponse {
private Long id;
private String email;
private String firstName;
private String lastName;
private RoleResponseBean role;
private String phoneNumber;
private String organization;
private String address;
private String city;
private String country;
private String status;
private LocalDateTime lastLogin;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
}

View File

@@ -2,14 +2,14 @@ package net.gepafin.tendermanagement.model.response;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.model.BaseBean;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Getter
@Setter
public class RegionResponseBean {
private Long id;
public class RegionResponseBean extends BaseBean {
private String regionName;
private String description;
private String country;
@@ -23,6 +23,4 @@ public class RegionResponseBean {
private BigDecimal educationLevel;
private BigDecimal healthcareAccess;
private BigDecimal environmentalScore;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
}

View File

@@ -4,16 +4,14 @@ import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.entities.RegionEntity;
import net.gepafin.tendermanagement.model.BaseBean;
import java.time.LocalDateTime;
@Data
public class RoleResponseBean {
private Long id;
public class RoleResponseBean extends BaseBean {
private String roleName;
private String description;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
private String permissions;
private RegionEntity region;
private RegionResponseBean region;
}

View File

@@ -6,22 +6,23 @@ import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.entities.RoleEntity;
import net.gepafin.tendermanagement.model.BaseBean;
import java.time.LocalDateTime;
@Getter
@Setter
public class UserResponseBean {
private Long id;
public class UserResponseBean extends BaseBean {
private String email;
private String firstName;
private String lastName;
private String phoneNumber;
private RoleResponseBean role;
private RoleEntity role;
private String phoneNumber;
private String organization;
@@ -35,7 +36,4 @@ public class UserResponseBean {
private LocalDateTime lastLogin;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
}

View File

@@ -0,0 +1,26 @@
package net.gepafin.tendermanagement.model.util;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import net.gepafin.tendermanagement.model.response.LoginResponse;
import net.gepafin.tendermanagement.model.response.UserResponseBean;
/**
* JWTToken
*/
@Data
public class JWTToken {
@JsonProperty("token")
private String token;
@JsonProperty("user")
private LoginResponse loginResponse;
public JWTToken(String token, LoginResponse loginResponse) {
this.token = token;
this.loginResponse = loginResponse;
}
}