[TASK:PPD2B000] #5
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces a complete authentication module for the application, implementing user registration and login with domain-driven design principles. It covers the API layer, application layer (use cases and DTOs), domain models, infrastructure for persistence and security, and includes tests for authentication logic.
API Layer:
AuthControllerwith endpoints for user registration (/register,/signup) and login (/login,/signin), delegating logic to use cases.Application Layer:
AuthUserRequest,CreateUserRequest,CreateUserResponse). [1] [2] [3]PasswordHasherinterface for password security.Domain Layer:
Useraggregate root with factory methods, status management, and validation.UserRoleandUserStatusenums. [1] [2]UserRepositoryinterface.Infrastructure Layer:
UserEntity) and repository (UserJpaRepository,UserRepositoryImpl) for user persistence. [1] [2] [3]UserMapper).BCryptPasswordHasherfor secure password hashing.Testing:
Most important changes:
API and Application Layer
AuthControllerwith endpoints for registration and login, delegating to use cases.AuthenticateUserUseCaseandRegisterUserUseCasefor authentication and user creation, including validation and error handling. [1] [2]PasswordHasherabstraction and its Spring configuration. [1] [2]Domain and Infrastructure Layer
Userdomain model with status management, and supporting enums (UserRole,UserStatus). [1] [2] [3]Testing