diff --git a/src/login-service/src/main/java/com/microservices/login/config/SecurityConfig.java b/src/login-service/src/main/java/com/microservices/login/config/SecurityConfig.java index 97942b9..ab052ab 100644 --- a/src/login-service/src/main/java/com/microservices/login/config/SecurityConfig.java +++ b/src/login-service/src/main/java/com/microservices/login/config/SecurityConfig.java @@ -44,7 +44,6 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .exceptionHandling(ex -> ex.authenticationEntryPoint(jwtAuthenticationEntryPoint)) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests(authz -> authz - .requestMatchers(org.springframework.http.HttpMethod.POST, "/api/login/users").permitAll() .requestMatchers("/api/login/auth").permitAll() .requestMatchers("/api/login/register").permitAll() .requestMatchers("/actuator/**").permitAll() diff --git a/src/login-service/src/main/java/com/microservices/login/controller/UserController.java b/src/login-service/src/main/java/com/microservices/login/controller/UserController.java index 8eda3bc..d0088c4 100644 --- a/src/login-service/src/main/java/com/microservices/login/controller/UserController.java +++ b/src/login-service/src/main/java/com/microservices/login/controller/UserController.java @@ -1,10 +1,8 @@ package com.microservices.login.controller; import com.microservices.login.dto.ApiResponse; -import com.microservices.login.dto.RegisterRequest; import com.microservices.login.dto.UpdateUserRequest; import com.microservices.login.dto.UserResponse; -import com.microservices.login.exception.EmailAlreadyExistsException; import com.microservices.login.model.User; import com.microservices.login.service.UserService; import com.microservices.login.security.JwtAuthenticationToken; @@ -47,23 +45,7 @@ public ResponseEntity getUserProfile(Authentication authentication) { .body(new ApiResponse(false, "Error retrieving user profile")); } } - @PostMapping("/users") - public ResponseEntity registerUser(@Valid @RequestBody RegisterRequest registerRequest) - { - try { - User user = userService.createUser(registerRequest); - UserResponse userResponse = new UserResponse(user); - logger.info("New user registered: {}", user.getUsername()); - return ResponseEntity.status(201).body(userResponse); - } - catch (EmailAlreadyExistsException e) { - logger.warn("Registration failed, email already exists: {}", - registerRequest.getEmail()); - return ResponseEntity.status(409) - .body(new ApiResponse(false, e.getMessage())); - } - } @PutMapping("/users/profile") @PreAuthorize("hasRole('USER')") public ResponseEntity updateUserProfile(@Valid @RequestBody UpdateUserRequest updateRequest, diff --git a/src/login-service/src/main/java/com/microservices/login/exception/EmailAlreadyExistsException.java b/src/login-service/src/main/java/com/microservices/login/exception/EmailAlreadyExistsException.java deleted file mode 100644 index de040db..0000000 --- a/src/login-service/src/main/java/com/microservices/login/exception/EmailAlreadyExistsException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.microservices.login.exception; - -public class EmailAlreadyExistsException extends RuntimeException{ - public EmailAlreadyExistsException(String message) - { - super(message); - } -} diff --git a/src/login-service/src/main/java/com/microservices/login/exception/GlobalExceptionHandler.java b/src/login-service/src/main/java/com/microservices/login/exception/GlobalExceptionHandler.java deleted file mode 100644 index 40cfb07..0000000 --- a/src/login-service/src/main/java/com/microservices/login/exception/GlobalExceptionHandler.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.microservices.login.exception; - -import com.microservices.login.dto.ApiResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.ControllerAdvice; -import org.springframework.web.bind.annotation.ExceptionHandler; - -@ControllerAdvice -public class GlobalExceptionHandler { - private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); - @ExceptionHandler(EmailAlreadyExistsException.class) - public ResponseEntity handleEmailExists(EmailAlreadyExistsException ex) { - return ResponseEntity.status(HttpStatus.CONFLICT) - .body(new ApiResponse(false, ex.getMessage())); - } -} diff --git a/src/login-service/src/main/java/com/microservices/login/service/UserService.java b/src/login-service/src/main/java/com/microservices/login/service/UserService.java index be43ffd..d61037a 100644 --- a/src/login-service/src/main/java/com/microservices/login/service/UserService.java +++ b/src/login-service/src/main/java/com/microservices/login/service/UserService.java @@ -1,15 +1,12 @@ package com.microservices.login.service; -import com.microservices.login.dto.RegisterRequest; import com.microservices.login.dto.UpdateUserRequest; -import com.microservices.login.exception.EmailAlreadyExistsException; import com.microservices.login.model.User; import com.microservices.login.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,8 +20,7 @@ public class UserService { @Autowired private UserRepository userRepository; - @Autowired - private PasswordEncoder passwordEncoder; + public User findByUsername(String username) { return userRepository.findByUsername(username) .orElseThrow(() -> new RuntimeException("User not found with username: " + username)); @@ -39,22 +35,6 @@ public List findAllActiveUsers() { return userRepository.findAllActiveUsers(); } - - public User createUser(RegisterRequest registerRequest) { - if(userRepository.existsByEmail(registerRequest.getEmail())) { - logger.warn("Attempt to register with existing email: {}", registerRequest.getEmail()); - throw new EmailAlreadyExistsException("A User is already registered with current mail"); - } - User user=new User(); - user.setUsername(registerRequest.getUsername()); - user.setPassword(passwordEncoder.encode(registerRequest.getPassword())); - user.setFirstName(registerRequest.getFirstName()); - user.setLastName(registerRequest.getLastName()); - user.setEmail(registerRequest.getEmail()); - user.setIsActive(true); - logger.info("New user registered: {}", user.getUsername()); - return userRepository.save(user); - } public User updateUserProfile(String username, UpdateUserRequest updateRequest) { User user = findByUsername(username); @@ -94,22 +74,22 @@ public void deactivateUser(Long userId, String currentUsername) { logger.info("User {} deactivated by user {}", userId, currentUsername); } -// public User createUser(User user) { -// // Check if username already exists -// if (userRepository.existsByUsername(user.getUsername())) { -// throw new RuntimeException("Username is already taken"); -// } -// -// // Check if email already exists -// if (userRepository.existsByEmail(user.getEmail())) { -// throw new RuntimeException("Email is already taken"); -// } -// -// User savedUser = userRepository.save(user); -// logger.info("New user created: {}", savedUser.getUsername()); -// -// return savedUser; -// } + public User createUser(User user) { + // Check if username already exists + if (userRepository.existsByUsername(user.getUsername())) { + throw new RuntimeException("Username is already taken"); + } + + // Check if email already exists + if (userRepository.existsByEmail(user.getEmail())) { + throw new RuntimeException("Email is already taken"); + } + + User savedUser = userRepository.save(user); + logger.info("New user created: {}", savedUser.getUsername()); + + return savedUser; + } public boolean existsByUsername(String username) { return userRepository.existsByUsername(username); diff --git a/src/login-service/src/test/java/com/microservices/login/EmpdirApplicationTests.java b/src/login-service/src/test/java/com/microservices/login/EmpdirApplicationTests.java index c128397..63c87f5 100644 --- a/src/login-service/src/test/java/com/microservices/login/EmpdirApplicationTests.java +++ b/src/login-service/src/test/java/com/microservices/login/EmpdirApplicationTests.java @@ -5,4 +5,7 @@ @SpringBootTest(classes = LoginServiceApplication.class) class EmpdirApplicationTests { + + + }