Refactor User entity and SignupRequest DTO to resolve method access issues and improve compatibility
- Added explicit getter/setter methods in User entity for use with service layer - Implemented standard getters/setters in SignupRequest DTO - Replaced incorrect imports from models.User to entity.User across services and repository
This commit is contained in:
@@ -1,23 +1,33 @@
|
|||||||
package com.skycrate.backend.skycrateBackend.dto;
|
package com.skycrate.backend.skycrateBackend.dto;
|
||||||
|
|
||||||
import jakarta.validation.constraints.Email;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.Pattern;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
|
|
||||||
public class SignupRequest {
|
public class SignupRequest {
|
||||||
|
|
||||||
@NotBlank
|
|
||||||
@Pattern(regexp = "^[a-zA-Z0-9]+$", message = "Username must be alphanumeric only")
|
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
@NotBlank
|
|
||||||
@Email
|
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
@NotBlank
|
|
||||||
@Size(min = 8, message = "Password must be at least 8 characters long")
|
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
// Getters and Setters
|
// Getters
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setters
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -87,4 +87,32 @@ public class User implements UserDetails {
|
|||||||
public String getFullname() {
|
public String getFullname() {
|
||||||
return fullname;
|
return fullname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
package com.skycrate.backend.skycrateBackend.models;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.hibernate.annotations.CreationTimestamp;
|
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
|
||||||
|
|
||||||
@Table(name = "users")
|
|
||||||
@Entity
|
|
||||||
public class User extends com.skycrate.backend.skycrateBackend.entity.User implements UserDetails {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
||||||
@Column(nullable = false)
|
|
||||||
private Integer id;
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
|
||||||
private String username;
|
|
||||||
|
|
||||||
@Column(unique = true, nullable = false)
|
|
||||||
private String email;
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
|
||||||
private String password;
|
|
||||||
|
|
||||||
// ✅ Add RSA key fields
|
|
||||||
@Lob
|
|
||||||
@Column(name = "public_key", columnDefinition = "BLOB")
|
|
||||||
private byte[] publicKey;
|
|
||||||
|
|
||||||
@Lob
|
|
||||||
@Column(name = "private_key", columnDefinition = "BLOB")
|
|
||||||
private byte[] privateKey;
|
|
||||||
|
|
||||||
|
|
||||||
@CreationTimestamp
|
|
||||||
@Column(updatable = false, name = "created_at")
|
|
||||||
private Date createdAt;
|
|
||||||
|
|
||||||
public User() {}
|
|
||||||
|
|
||||||
public User(String firstname, String lastname, String email, String password) {
|
|
||||||
this.username = firstname + lastname;
|
|
||||||
this.email = email;
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ⬇️ Required by Spring Security
|
|
||||||
@Override
|
|
||||||
public Collection<? extends GrantedAuthority> getAuthorities() {
|
|
||||||
return List.of();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getUsername() {
|
|
||||||
return email;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isAccountNonExpired() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isAccountNonLocked() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCredentialsNonExpired() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ⬇️ Getters and Setters
|
|
||||||
public Integer getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Integer id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFullname(String firstname, String lastname) {
|
|
||||||
this.username = firstname + lastname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFullname() {
|
|
||||||
return this.username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmail(String email) {
|
|
||||||
this.email = email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreatedAt() {
|
|
||||||
return createdAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreatedAt(Date createdAt) {
|
|
||||||
this.createdAt = createdAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ✅ Getters and setters for RSA keys
|
|
||||||
public byte[] getPublicKey() {
|
|
||||||
return publicKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublicKey(byte[] publicKey) {
|
|
||||||
this.publicKey = publicKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] getPrivateKey() {
|
|
||||||
return privateKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPrivateKey(byte[] privateKey) {
|
|
||||||
this.privateKey = privateKey;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@ package com.skycrate.backend.skycrateBackend.repository;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
import com.skycrate.backend.skycrateBackend.models.User;
|
import com.skycrate.backend.skycrateBackend.entity.User;
|
||||||
public interface UserRepository extends CrudRepository<User,Integer> {
|
public interface UserRepository extends CrudRepository<User,Integer> {
|
||||||
Optional<User> findByEmail(String email);
|
Optional<User> findByEmail(String email);
|
||||||
// Custom query method to find user by username
|
// Custom query method to find user by username
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import com.skycrate.backend.skycrateBackend.dto.LoginUserDto;
|
import com.skycrate.backend.skycrateBackend.dto.LoginUserDto;
|
||||||
import com.skycrate.backend.skycrateBackend.dto.RegisterUserDto;
|
import com.skycrate.backend.skycrateBackend.dto.RegisterUserDto;
|
||||||
import com.skycrate.backend.skycrateBackend.models.User;
|
import com.skycrate.backend.skycrateBackend.entity.User;
|
||||||
import com.skycrate.backend.skycrateBackend.repository.UserRepository;
|
import com.skycrate.backend.skycrateBackend.repository.UserRepository;
|
||||||
import com.skycrate.backend.skycrateBackend.utils.RSAKeyUtil;
|
import com.skycrate.backend.skycrateBackend.utils.RSAKeyUtil;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.skycrate.backend.skycrateBackend.services;
|
package com.skycrate.backend.skycrateBackend.services;
|
||||||
|
|
||||||
import com.skycrate.backend.skycrateBackend.config.HDFSConfig;
|
import com.skycrate.backend.skycrateBackend.config.HDFSConfig;
|
||||||
import com.skycrate.backend.skycrateBackend.models.User;
|
import com.skycrate.backend.skycrateBackend.entity.User;
|
||||||
import com.skycrate.backend.skycrateBackend.repository.UserRepository;
|
import com.skycrate.backend.skycrateBackend.repository.UserRepository;
|
||||||
import com.skycrate.backend.skycrateBackend.utils.RSAKeyUtil;
|
import com.skycrate.backend.skycrateBackend.utils.RSAKeyUtil;
|
||||||
import org.apache.hadoop.fs.FSDataOutputStream;
|
import org.apache.hadoop.fs.FSDataOutputStream;
|
||||||
|
|||||||
Reference in New Issue
Block a user