From 55214e9da5ca228538aaad1a4d0aa338278a0e98 Mon Sep 17 00:00:00 2001 From: BelisAliosmanova Date: Wed, 14 Jan 2026 17:22:10 +0200 Subject: [PATCH 1/8] impl auth --- .idea/workspace.xml | 104 ++++++- server/pom.xml | 109 +++++++ .../LifeAI/config/ApplicationConfig.java | 80 +++++- .../lifeAI/LifeAI/config/FrontendConfig.java | 2 +- .../com/lifeAI/LifeAI/config/MailConfig.java | 39 +++ .../LifeAI/config/SecurityConfiguration.java | 58 ++++ .../lifeAI/LifeAI/config/WebClientConfig.java | 18 ++ .../RateLimiterConfigProperties.java | 24 ++ .../rateLimiting/Resilience4jConfig.java | 39 +++ .../LifeAI/enums/ExceptionSeverity.java | 6 + .../com/lifeAI/LifeAI/enums/Permission.java | 25 ++ .../com/lifeAI/LifeAI/enums/Provider.java | 35 +++ .../java/com/lifeAI/LifeAI/enums/Role.java | 38 +++ .../com/lifeAI/LifeAI/enums/TokenType.java | 6 + .../common/AccessDeniedException.java | 6 +- .../common/BadRequestException.java | 6 - .../common/InternalServerErrorException.java | 14 +- .../common/NoSuchElementException.java | 6 - .../common/TooManyRequestsException.java | 9 +- .../exceptions/email/EmailNotVerified.java | 14 + .../token/ExpiredTokenException.java | 10 + .../token/InvalidTokenException.java | 13 + .../exceptions/user/UserCreateException.java | 21 ++ .../exceptions/user/UserLoginException.java | 12 + .../user/UserNotFoundException.java | 14 + .../user/UserValidationException.java | 12 + .../filters/JwtAuthenticationFilter.java | 120 ++++++++ .../handlers/CustomExceptionHandler.java | 86 ++++++ .../handlers/JwtAuthenticationEntryPoint.java | 37 +++ .../lifeAI/LifeAI/handlers/LogoutHandler.java | 50 ++++ .../com/lifeAI/LifeAI/model/Exception.java | 58 ++++ .../java/com/lifeAI/LifeAI/model/Token.java | 37 +++ .../java/com/lifeAI/LifeAI/model/User.java | 98 +++++++ .../LifeAI/model/VerificationToken.java | 43 +++ .../LifeAI/model/baseEntity/BaseEntity.java | 51 ++++ .../model/dto/auth/AccessTokenBodyDTO.java | 12 + .../LifeAI/model/dto/auth/AdminUserDTO.java | 14 + .../model/dto/auth/AuthenticationRequest.java | 15 + .../dto/auth/AuthenticationResponse.java | 19 ++ .../model/dto/auth/OAuth2UserInfoDTO.java | 22 ++ .../LifeAI/model/dto/auth/PublicUserDTO.java | 16 ++ .../model/dto/auth/RefreshTokenBodyDTO.java | 12 + .../model/dto/auth/RegisterRequest.java | 26 ++ .../LifeAI/model/dto/common/BaseDTO.java | 4 + .../model/response/ExceptionResponse.java | 20 ++ .../LifeAI/respository/TokenRepository.java | 14 + .../LifeAI/respository/UserRepository.java | 17 ++ .../VerificationTokenRepository.java | 19 ++ .../services/AuthenticationService.java | 26 ++ .../LifeAI/services/ExceptionService.java | 11 + .../lifeAI/LifeAI/services/JwtService.java | 21 ++ .../services/OAuth2AuthenticationService.java | 10 + .../lifeAI/LifeAI/services/TokenService.java | 28 ++ .../lifeAI/LifeAI/services/UserService.java | 28 ++ .../LifeAI/services/UserServiceImpl.java | 176 ++++++++++++ .../services/impl/ExceptionServiceImpl.java | 27 ++ .../security/AuthenticationServiceImpl.java | 272 ++++++++++++++++++ .../services/security/JwtServiceImpl.java | 119 ++++++++ .../OAuth2AuthenticationServiceImpl.java | 88 ++++++ .../security/PasswordResetListener.java | 72 +++++ .../security/RegistrationListener.java | 61 ++++ .../services/security/TokenServiceImpl.java | 109 +++++++ .../events/OnPasswordResetRequestEvent.java | 22 ++ .../events/OnRegistrationCompleteEvent.java | 30 ++ .../LifeAI/utils/ApiExceptionParser.java | 22 ++ .../com/lifeAI/LifeAI/utils/CookieHelper.java | 29 ++ .../LifeAI/utils/ObjectMapperHelper.java | 34 +++ .../LifeAI/utils/PasswordEncryptionUtils.java | 49 ++++ server/src/main/resources/application.yml | 82 +++++- server/src/main/resources/rate-limiter.yaml | 11 + 70 files changed, 2783 insertions(+), 54 deletions(-) create mode 100644 server/src/main/java/com/lifeAI/LifeAI/config/MailConfig.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/config/SecurityConfiguration.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/config/WebClientConfig.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/config/rateLimiting/RateLimiterConfigProperties.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/config/rateLimiting/Resilience4jConfig.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/enums/ExceptionSeverity.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/enums/Permission.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/enums/Provider.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/enums/Role.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/enums/TokenType.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/email/EmailNotVerified.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/token/ExpiredTokenException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/token/InvalidTokenException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/user/UserCreateException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/user/UserLoginException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/user/UserNotFoundException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/exceptions/user/UserValidationException.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/filters/JwtAuthenticationFilter.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/handlers/CustomExceptionHandler.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/handlers/JwtAuthenticationEntryPoint.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/handlers/LogoutHandler.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/Exception.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/Token.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/User.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/VerificationToken.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/baseEntity/BaseEntity.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/AccessTokenBodyDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/AdminUserDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/AuthenticationRequest.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/AuthenticationResponse.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/OAuth2UserInfoDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/PublicUserDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/RefreshTokenBodyDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/auth/RegisterRequest.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/dto/common/BaseDTO.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/model/response/ExceptionResponse.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/respository/TokenRepository.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/respository/UserRepository.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/respository/VerificationTokenRepository.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/AuthenticationService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/ExceptionService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/JwtService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/OAuth2AuthenticationService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/TokenService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/UserService.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/UserServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/impl/ExceptionServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/AuthenticationServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/JwtServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/OAuth2AuthenticationServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/PasswordResetListener.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/RegistrationListener.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/TokenServiceImpl.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/events/OnPasswordResetRequestEvent.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/services/security/events/OnRegistrationCompleteEvent.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/utils/ApiExceptionParser.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/utils/CookieHelper.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/utils/ObjectMapperHelper.java create mode 100644 server/src/main/java/com/lifeAI/LifeAI/utils/PasswordEncryptionUtils.java create mode 100644 server/src/main/resources/rate-limiter.yaml diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 5accd00..75db9b7 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,7 +5,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { "selectedUrlAndAccountId": { - "url": "https://github.com/BelisAliosmanova/LifeAI.git", + "url": "https://github.com/PixelChicks/LifeAI.git", "accountId": "a9e64eaa-e818-4106-8acd-7f56e3dadcf0" } } @@ -64,19 +134,19 @@ "Maven.LifeAI [clean,test,install].executor": "Run", "RunOnceActivity.ShowReadmeOnStart": "true", "SHARE_PROJECT_CONFIGURATION_FILES": "true", - "git-widget-placeholder": "crawlers", + "git-widget-placeholder": "master", "ignore.virus.scanning.warn.message": "true", "kotlin-language-version-configured": "true", - "last_opened_file_path": "C:/Users/Lenovo/Desktop/LifeAI/server/src/main/java/com/lifeAI/LifeAI/config" + "last_opened_file_path": "C:/Users/Lenovo/Desktop/LIFE/LifeAI/server/src/main/resources" } } - - - - - + + + + + @@ -84,6 +154,10 @@ + + + + @@ -91,12 +165,26 @@ + + + + + + + + + + + + + +