From 88fd49c807e3de88cd09967fdd5eea4271403cc1 Mon Sep 17 00:00:00 2001 From: Kshitij <160704796+kshitij-ka@users.noreply.github.com> Date: Thu, 3 Jul 2025 03:54:20 +0530 Subject: [PATCH] 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 --- .../skycrateBackend/dto/SignupRequest.java | 40 +++-- .../backend/skycrateBackend/entity/User.java | 28 ++++ .../backend/skycrateBackend/models/User.java | 138 ------------------ .../repository/UserRepository.java | 2 +- .../services/AuthenticationService.java | 2 +- .../services/HDFSOperations.java | 2 +- 6 files changed, 56 insertions(+), 156 deletions(-) delete mode 100644 src/main/java/com/skycrate/backend/skycrateBackend/models/User.java diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/dto/SignupRequest.java b/src/main/java/com/skycrate/backend/skycrateBackend/dto/SignupRequest.java index a4faf75..f983c61 100644 --- a/src/main/java/com/skycrate/backend/skycrateBackend/dto/SignupRequest.java +++ b/src/main/java/com/skycrate/backend/skycrateBackend/dto/SignupRequest.java @@ -1,23 +1,33 @@ 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 { - - @NotBlank - @Pattern(regexp = "^[a-zA-Z0-9]+$", message = "Username must be alphanumeric only") private String username; - - @NotBlank - @Email private String email; - - @NotBlank - @Size(min = 8, message = "Password must be at least 8 characters long") 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; + } } \ No newline at end of file diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/entity/User.java b/src/main/java/com/skycrate/backend/skycrateBackend/entity/User.java index 25b4d47..bde3655 100644 --- a/src/main/java/com/skycrate/backend/skycrateBackend/entity/User.java +++ b/src/main/java/com/skycrate/backend/skycrateBackend/entity/User.java @@ -87,4 +87,32 @@ public class User implements UserDetails { public String getFullname() { 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; + } } \ No newline at end of file diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/models/User.java b/src/main/java/com/skycrate/backend/skycrateBackend/models/User.java deleted file mode 100644 index a07b452..0000000 --- a/src/main/java/com/skycrate/backend/skycrateBackend/models/User.java +++ /dev/null @@ -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 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; - } -} diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/repository/UserRepository.java b/src/main/java/com/skycrate/backend/skycrateBackend/repository/UserRepository.java index ef145cb..64a687e 100644 --- a/src/main/java/com/skycrate/backend/skycrateBackend/repository/UserRepository.java +++ b/src/main/java/com/skycrate/backend/skycrateBackend/repository/UserRepository.java @@ -2,7 +2,7 @@ package com.skycrate.backend.skycrateBackend.repository; import java.util.Optional; 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 { Optional findByEmail(String email); // Custom query method to find user by username diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/services/AuthenticationService.java b/src/main/java/com/skycrate/backend/skycrateBackend/services/AuthenticationService.java index b64252f..ff333ba 100644 --- a/src/main/java/com/skycrate/backend/skycrateBackend/services/AuthenticationService.java +++ b/src/main/java/com/skycrate/backend/skycrateBackend/services/AuthenticationService.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Service; import com.skycrate.backend.skycrateBackend.dto.LoginUserDto; 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.utils.RSAKeyUtil; diff --git a/src/main/java/com/skycrate/backend/skycrateBackend/services/HDFSOperations.java b/src/main/java/com/skycrate/backend/skycrateBackend/services/HDFSOperations.java index fc73dbf..ef09835 100644 --- a/src/main/java/com/skycrate/backend/skycrateBackend/services/HDFSOperations.java +++ b/src/main/java/com/skycrate/backend/skycrateBackend/services/HDFSOperations.java @@ -1,7 +1,7 @@ package com.skycrate.backend.skycrateBackend.services; 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.utils.RSAKeyUtil; import org.apache.hadoop.fs.FSDataOutputStream;