From 6811ef178128760ed900ebe9c62c0914163388dc Mon Sep 17 00:00:00 2001 From: migudel <miguel.moras@estudiantes.uva.es> Date: Wed, 27 Nov 2024 18:47:21 +0100 Subject: [PATCH] =?UTF-8?q?Integraci=C3=B3n=20de=20servicios=20correcta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth => config}/SecurityConfig.java | 5 +- .../JwtAuthenticationFilter.java | 2 +- .../services/auth/AuthController.java | 47 ------------- .../monolith/services/auth/LoginRequest.java | 23 ------- .../services/bookings/models/Booking.java | 10 +-- .../bookings/services/BookingService.java | 23 +++---- .../services/hotels/models/Hotel.java | 3 - .../monolith/services/hotels/models/Room.java | 9 ++- .../services/hotels/models/RoomType.java | 7 ++ .../users/controllers/UserService.java | 36 ---------- .../monolith/services/users/models/Tipo.java | 7 -- .../services/users/services/UserService.java | 26 ++++---- .../com/uva/authentication/api/UserAPI.java | 11 ++-- .../controllers/AuthController.java | 2 - .../authentication/services/AuthService.java | 66 ++++++++++--------- .../com/uva/authentication/utils/JwtUtil.java | 2 - 16 files changed, 86 insertions(+), 193 deletions(-) rename java/roomBooking/src/main/java/com/uva/monolith/{services/auth => config}/SecurityConfig.java (92%) rename java/roomBooking/src/main/java/com/uva/monolith/{services/auth => filter}/JwtAuthenticationFilter.java (99%) delete mode 100644 java/roomBooking/src/main/java/com/uva/monolith/services/auth/AuthController.java delete mode 100644 java/roomBooking/src/main/java/com/uva/monolith/services/auth/LoginRequest.java create mode 100644 java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java delete mode 100644 java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserService.java delete mode 100644 java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/SecurityConfig.java b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java similarity index 92% rename from java/roomBooking/src/main/java/com/uva/monolith/services/auth/SecurityConfig.java rename to java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java index e115ffb..75a4664 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/SecurityConfig.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java @@ -1,4 +1,4 @@ -package com.uva.monolith.services.auth; +package com.uva.monolith.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -7,6 +7,7 @@ import org.springframework.security.config.annotation.web.configuration.EnableWe import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import com.uva.monolith.filter.JwtAuthenticationFilter; import com.uva.monolith.services.users.models.UserRol; @Configuration @@ -23,8 +24,6 @@ public class SecurityConfig { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf(csrf -> csrf.disable()) .authorizeHttpRequests(authorize -> authorize - // Permitir todas las conexiones - .requestMatchers("").permitAll() // Acceso restringido a usuarios y administradores .requestMatchers("users", "users/**") .hasAnyRole(UserRol.ADMIN.toString(), UserRol.CLIENT.toString()) diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/JwtAuthenticationFilter.java b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java similarity index 99% rename from java/roomBooking/src/main/java/com/uva/monolith/services/auth/JwtAuthenticationFilter.java rename to java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java index 2313797..9a0b6f4 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/JwtAuthenticationFilter.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java @@ -1,4 +1,4 @@ -package com.uva.monolith.services.auth; +package com.uva.monolith.filter; import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/AuthController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/auth/AuthController.java deleted file mode 100644 index c47ba89..0000000 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/AuthController.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.uva.monolith.services.auth; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.server.ResponseStatusException; -import com.uva.monolith.services.users.controllers.UserService; -import com.uva.monolith.services.users.models.User; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import javax.crypto.spec.SecretKeySpec; -import java.security.Key; -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -@RestController -@RequestMapping("/api/auth") -public class AuthController { - - private final String SECRET_KEY = "clave_secreta"; - - @Autowired - private UserService userService; - - @PostMapping("/login") - public Map<String, String> login(@RequestBody LoginRequest loginRequest) { - User user = userService.findByEmail(loginRequest.getEmail()); - - if (user != null && userService.verifyPassword(loginRequest.getPassword(), user.getPassword())) { - String token = Jwts.builder() - .setSubject(user.getEmail()) - .signWith(new SecretKeySpec(SECRET_KEY.getBytes(), SignatureAlgorithm.HS256.getJcaName())) - .claim("email", user.getEmail()) - .setExpiration(new Date(System.currentTimeMillis() + 3600000)) // 1 hora - .compact(); - - Map<String, String> response = new HashMap<>(); - response.put("token", token); - return response; - } - - throw new ResponseStatusException(HttpStatus.FORBIDDEN, "Credenciales inválidas"); - } -} diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/LoginRequest.java b/java/roomBooking/src/main/java/com/uva/monolith/services/auth/LoginRequest.java deleted file mode 100644 index 62f9cb9..0000000 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/auth/LoginRequest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.uva.monolith.services.auth; - -public class LoginRequest { - - private String email; - private String password; - - 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; - } -} diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java index b3b0a5a..533ee0c 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java @@ -14,7 +14,7 @@ import jakarta.persistence.Table; import java.time.LocalDate; import com.uva.monolith.services.hotels.models.Room; -import com.uva.monolith.services.users.models.User; +import com.uva.monolith.services.users.models.Client; @Entity @Table(name = "bookings") @@ -25,7 +25,7 @@ public class Booking { private int id; @JoinColumn(name = "user_id", referencedColumnName = "id") @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.MERGE) - private User userId; + private Client userId; @JoinColumn(name = "room_id", referencedColumnName = "id") @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.MERGE) private Room roomId; @@ -37,7 +37,7 @@ public class Booking { public Booking() { } - public Booking(int id, User userId, Room roomID, LocalDate startDate, LocalDate endDate) { + public Booking(int id, Client userId, Room roomID, LocalDate startDate, LocalDate endDate) { this.id = id; this.userId = userId; this.roomId = roomID; @@ -53,11 +53,11 @@ public class Booking { return this.id; } - public void setUserId(User userId) { + public void setUserId(Client userId) { this.userId = userId; } - public User getUserId() { + public Client getUserId() { return this.userId; } diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java index b897e47..176f49d 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java @@ -4,8 +4,10 @@ import com.uva.monolith.services.bookings.models.Booking; import com.uva.monolith.services.bookings.repositories.BookingRepository; import com.uva.monolith.services.hotels.models.Room; import com.uva.monolith.services.hotels.repositories.RoomRepository; -import com.uva.monolith.services.users.models.User; -import com.uva.monolith.services.users.repositories.UserRepository; +import com.uva.monolith.services.users.models.Client; +import com.uva.monolith.services.users.repositories.ClientRepository; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -14,15 +16,14 @@ import java.util.List; @Service public class BookingService { - private final BookingRepository bookingRepository; - private final UserRepository userRepository; - private final RoomRepository roomRepository; + @Autowired + private BookingRepository bookingRepository; - public BookingService(BookingRepository bookingRepository, UserRepository userRepository, RoomRepository roomRepository) { - this.bookingRepository = bookingRepository; - this.userRepository = userRepository; - this.roomRepository = roomRepository; - } + @Autowired + private RoomRepository roomRepository; + + @Autowired + private ClientRepository clientRepository; public List<Booking> getBookings(LocalDate start, LocalDate end, Integer roomId, Integer userId) { List<Booking> bookings = null; @@ -56,7 +57,7 @@ public class BookingService { } public Booking createBooking(Booking booking) { - User user = userRepository.findById(booking.getUserId().getId()) + Client user = clientRepository.findById(booking.getUserId().getId()) .orElseThrow(() -> new RuntimeException("User not found")); Room room = roomRepository.findById(booking.getRoomId().getId()) .orElseThrow(() -> new RuntimeException("Room not found")); diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java index 0616ff8..21f5cec 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java @@ -2,13 +2,10 @@ package com.uva.monolith.services.hotels.models; import java.util.List; -import org.hibernate.annotations.ManyToAny; - import com.uva.monolith.services.users.models.HotelManager; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java index 0ac71f5..72a6a72 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java @@ -4,7 +4,6 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; import com.uva.monolith.services.bookings.models.Booking; -import com.uva.monolith.services.users.models.Tipo; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; @@ -36,7 +35,7 @@ public class Room { @Column(name = "room_number", nullable = false) private String roomNumber; @Column(name = "type", nullable = false) - private Tipo type; + private RoomType type; @Column(name = "available", nullable = false) private boolean available; @JsonIgnore @@ -46,7 +45,7 @@ public class Room { public Room() { } - public Room(int id, Hotel hotelId, String roomNumber, Tipo type, boolean available, List<Booking> bookings) { + public Room(int id, Hotel hotelId, String roomNumber, RoomType type, boolean available, List<Booking> bookings) { this.id = id; this.hotel = hotelId; this.roomNumber = roomNumber; @@ -79,11 +78,11 @@ public class Room { return this.roomNumber; } - public void setType(Tipo type) { + public void setType(RoomType type) { this.type = type; } - public Tipo getType() { + public RoomType getType() { return this.type; } diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java new file mode 100644 index 0000000..b9e8258 --- /dev/null +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java @@ -0,0 +1,7 @@ +package com.uva.monolith.services.hotels.models; + +public enum RoomType { + SINGLE, + DOUBLE, + SUITE +} diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserService.java deleted file mode 100644 index bdaf5ac..0000000 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.uva.monolith.services.users.controllers; - -import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.server.ResponseStatusException; - -import com.uva.monolith.services.users.models.User; - -import org.springframework.http.HttpStatus; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; - -import org.springframework.beans.factory.annotation.Autowired; -import com.uva.monolith.services.users.repositories.UserRepository; - -@Service -public class UserService { - - @Autowired - private UserRepository userRepository; - - private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - - public boolean verifyPassword(String rawPassword, String encodedPassword) { - return passwordEncoder.matches(rawPassword, encodedPassword); - } - - public String encodePassword(String password) { - return passwordEncoder.encode(password); - } - - public User findByEmail(@RequestParam String email) { - return userRepository.findByEmail(email) - .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Usuario no encontrado")); -} -} diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java deleted file mode 100644 index 8b240e8..0000000 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.uva.monolith.services.users.models; - -public enum Tipo { - SINGLE, - DOUBLE, - SUITE -} diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java index 66c072e..d25e835 100644 --- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java @@ -9,9 +9,10 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; +import com.uva.monolith.services.users.models.Client; import com.uva.monolith.services.users.models.User; -import com.uva.monolith.services.users.models.UserRol; import com.uva.monolith.services.users.models.UserStatus; +import com.uva.monolith.services.users.repositories.ClientRepository; import com.uva.monolith.services.users.repositories.UserRepository; @Service @@ -20,11 +21,14 @@ public class UserService { @Autowired private UserRepository userRepository; + @Autowired + private ClientRepository clientRepository; + public List<User> getAllUsers() { return userRepository.findAll(); } - private User assertUser(Optional<User> opUser) { + private User assertUser(Optional<? extends User> opUser) { return opUser.orElseThrow(() -> new HttpClientErrorException(HttpStatus.NOT_FOUND)); } @@ -37,13 +41,14 @@ public class UserService { } public User addUser(User user) { - // TODO Introducir medidas de seguridad? - // Establecemos valores por defecto - user.setStatus(UserStatus.NO_BOOKINGS); - if (user.getRol() == null) // Rol por defecto - user.setRol(UserRol.CONSUMER); - // Guardamos - return userRepository.save(user); + // Actualmente está en el servicio AUTH + // TODO adaptar adecuadamente + throw new HttpClientErrorException(HttpStatus.MOVED_PERMANENTLY, "servicio actual en http://localhost:8101/login"); + // user.setStatus(UserStatus.NO_BOOKINGS); + // if (user.getRol() == null) // Rol por defecto + // user.setRol(UserRol.CONSUMER); + // // Guardamos + // return userRepository.save(user); } public User updateUserData(int id, String name, String email) { @@ -55,7 +60,7 @@ public class UserService { public User updateUserStatus(int id, UserStatus status) { - User user = getUserById(id); + Client user = (Client) assertUser(clientRepository.findById(id)); boolean activeBookings = user.getBookings().stream() .anyMatch(booking -> !booking.getEndDate().isBefore(LocalDate.now())); // reserva >= ahora @@ -63,7 +68,6 @@ public class UserService { .anyMatch(booking -> booking.getStartDate().isBefore(LocalDate.now())); // reserva < ahora switch (status) { - // TODO Buscar como validar las (in)active bookings case NO_BOOKINGS: if (!user.getBookings().isEmpty()) throw new IllegalArgumentException("Invalid State: The user has at least one booking"); diff --git a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java index a2df673..7df746b 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java +++ b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java @@ -3,9 +3,7 @@ package com.uva.authentication.api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; @@ -41,10 +39,11 @@ public class UserAPI { public User getUserByEmail(String email) { - String token = getAccessToken(); - HttpHeaders headers = new HttpHeaders(); - headers.set("Authorization", "Bearer " + token); - HttpEntity<Void> entity = new HttpEntity<>(headers); + // Implementación para acceder con autentificación + // String token = getAccessToken(); + // HttpHeaders headers = new HttpHeaders(); + // headers.set("Authorization", "Bearer " + token); + // HttpEntity<Void> entity = new HttpEntity<>(headers); String url = USER_API_URL + "?email={" + email + "}"; try { diff --git a/java/services/auth/src/main/java/com/uva/authentication/controllers/AuthController.java b/java/services/auth/src/main/java/com/uva/authentication/controllers/AuthController.java index b9434db..72e4eab 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/controllers/AuthController.java +++ b/java/services/auth/src/main/java/com/uva/authentication/controllers/AuthController.java @@ -22,7 +22,6 @@ public class AuthController { return ResponseEntity.ok(token); } catch (HttpClientErrorException e) { if (e.getStatusCode() == HttpStatus.FORBIDDEN) { - // return new ResponseEntity<Void>(HttpStatus.FORBIDDEN); return new ResponseEntity<String>(e.getMessage(), HttpStatus.FORBIDDEN); } } @@ -40,7 +39,6 @@ public class AuthController { return login(loginRequest); } catch (HttpClientErrorException e) { if (e.getStatusCode() == HttpStatus.CONFLICT) { - // return new ResponseEntity<Void>(HttpStatus.FORBIDDEN); return new ResponseEntity<String>(e.getMessage(), HttpStatus.CONFLICT); } e.fillInStackTrace(); diff --git a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java index 0ed1999..3bc823b 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java +++ b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java @@ -8,7 +8,6 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; -import com.uva.authentication.api.UserAPI; import com.uva.authentication.models.Client; import com.uva.authentication.models.HotelManager; import com.uva.authentication.models.LoginRequest; @@ -33,9 +32,6 @@ public class AuthService { @Autowired private ClientRepository clientRepository; - @Autowired - private UserAPI userAPI; - @Autowired private UserRepository userRepository; @@ -46,49 +42,57 @@ public class AuthService { } public String login(LoginRequest loginRequest) { - // User user = userAPI.getUserByEmail(loginRequest.getEmail()); User user = userRepository.findByEmail(loginRequest.getEmail()) .orElseThrow(() -> new HttpClientErrorException(HttpStatus.FORBIDDEN, "Invalid credentials")); - boolean isAuthenticated = authenticateUser(loginRequest, user); - if (!isAuthenticated) { + if (!authenticateUser(loginRequest, user)) { throw new HttpClientErrorException(HttpStatus.FORBIDDEN, "Invalid credentials"); } - // Generate a mock JWT token for simplicity - String jwtToken = "Bearer " + jwtUtil.generateToken(user); - return jwtToken; - + return jwtUtil.generateToken(user); } public User register(RegisterRequest registerRequest) { - // User user = userAPI.getUserByEmail(registerRequest.getEmail()); Optional<User> user = userRepository.findByEmail(registerRequest.getEmail()); if (user.isPresent()) throw new HttpClientErrorException(HttpStatus.CONFLICT, "Email already in use"); - String hashPass = SecurityUtils.encrypt(registerRequest.getPassword()); - // return userAPI.registerUser(registerRequest); + return registerNewUser(registerRequest); + } + + private User registerNewUser(RegisterRequest registerRequest) { User newUser; - if (registerRequest.getRol() == UserRol.HOTEL_ADMIN) { - HotelManager hm = new HotelManager(); - // hm.setName(registerRequest.getName()); - // hm.setEmail(registerRequest.getEmail()); - // hm.setRol(registerRequest.getRol()); - BeanUtils.copyProperties(registerRequest, hm); - hm.setPassword(hashPass); - newUser = hotelManagerRepository.save(hm); - } else { - Client client = new Client(); - // client.setName(registerRequest.getName()); - // client.setEmail(registerRequest.getEmail()); - BeanUtils.copyProperties(registerRequest, client); - client.setRol(UserRol.CLIENT); - client.setPassword(hashPass); - newUser = clientRepository.save(client); + + // Ciframos la contraseña + String hashPass = SecurityUtils.encrypt(registerRequest.getPassword()); + registerRequest.setPassword(hashPass); + + // Aseguramos que tenga un rol, por defecto es cliente + if (registerRequest.getRol() == null) + registerRequest.setRol(UserRol.CLIENT); + + switch (registerRequest.getRol()) { + case HOTEL_ADMIN: + HotelManager hm = new HotelManager(); + BeanUtils.copyProperties(registerRequest, hm); + newUser = hotelManagerRepository.save(hm); + break; + + case ADMIN: // TODO revisar + User admin = new User(); + BeanUtils.copyProperties(registerRequest, admin); + newUser = userRepository.save(admin); + break; + + case CLIENT: // Por defecto cliente normal + default: + Client client = new Client(); + BeanUtils.copyProperties(registerRequest, client); + client.setRol(UserRol.CLIENT); + newUser = clientRepository.save(client); + break; } return newUser; } - } diff --git a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java index 2e22fae..4ac6688 100644 --- a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java +++ b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java @@ -80,8 +80,6 @@ public class JwtUtil { private Key getSignInKey() { byte[] keyBytes = Decoders.BASE64.decode(secretKey); - // byte[] keyBytes = secretKey.getBytes(StandardCharsets.UTF_8); // for secret - // key return Keys.hmacShaKeyFor(keyBytes); } } -- GitLab