From 2d255a7f0beb1240cca77c3c1811bb9138f1aebc Mon Sep 17 00:00:00 2001 From: Jose Date: Thu, 22 Jan 2026 14:42:25 +0100 Subject: [PATCH] Add: login wrapper to huertos. --- .../huertos/client/HuertosWebClient.java | 10 ++--- .../huertos/config/HuertosStartup.java | 2 +- .../huertos/config/SecurityConfig.java | 2 +- .../controller/HuertosAuthController.java | 42 +++++++++++++++++++ .../huertos/dto/HuertosLoginResponse.java | 12 ++++++ 5 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 huertos/src/main/java/net/miarma/backend/huertos/controller/HuertosAuthController.java create mode 100644 huertos/src/main/java/net/miarma/backend/huertos/dto/HuertosLoginResponse.java diff --git a/huertos/src/main/java/net/miarma/backend/huertos/client/HuertosWebClient.java b/huertos/src/main/java/net/miarma/backend/huertos/client/HuertosWebClient.java index 637eab7..cf5c462 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/client/HuertosWebClient.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/client/HuertosWebClient.java @@ -23,14 +23,14 @@ public class HuertosWebClient { this.coreUrl = coreUrl; } - public String login(String username, String password) { + public LoginResponse login(String username, String password) { LoginRequest req = new LoginRequest(username, password, (byte) 1); LoginResponse resp = restTemplate.postForObject( - coreUrl + "/auth/login", - req, - LoginResponse.class + coreUrl + "/auth/login", + req, + LoginResponse.class ); - return resp.token(); + return resp; } public UserWithCredentialDto getUserWithCredential(UUID userId, Byte serviceId) { diff --git a/huertos/src/main/java/net/miarma/backend/huertos/config/HuertosStartup.java b/huertos/src/main/java/net/miarma/backend/huertos/config/HuertosStartup.java index b974c53..3e717cf 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/config/HuertosStartup.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/config/HuertosStartup.java @@ -29,7 +29,7 @@ public class HuertosStartup implements ApplicationRunner { @Override public void run(ApplicationArguments args) { - String token = client.login(user, pass); + String token = client.login(user, pass).token(); tokenHolder.setToken(token); System.out.println("TOKEN recibido: " + token); System.out.println("HUERTOS CLIENT has been authenticated in CORE"); diff --git a/huertos/src/main/java/net/miarma/backend/huertos/config/SecurityConfig.java b/huertos/src/main/java/net/miarma/backend/huertos/config/SecurityConfig.java index aa7420a..1425347 100644 --- a/huertos/src/main/java/net/miarma/backend/huertos/config/SecurityConfig.java +++ b/huertos/src/main/java/net/miarma/backend/huertos/config/SecurityConfig.java @@ -42,7 +42,7 @@ public class SecurityConfig { ) .authorizeHttpRequests(auth -> auth // PUBLICAS - .requestMatchers("/login").permitAll() + .requestMatchers("/auth/login").permitAll() .requestMatchers("/announcements").permitAll() .requestMatchers("/requests/mine").permitAll() .requestMatchers("/users/waitlist/limited").permitAll() diff --git a/huertos/src/main/java/net/miarma/backend/huertos/controller/HuertosAuthController.java b/huertos/src/main/java/net/miarma/backend/huertos/controller/HuertosAuthController.java new file mode 100644 index 0000000..67e2adc --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/controller/HuertosAuthController.java @@ -0,0 +1,42 @@ +package net.miarma.backend.huertos.controller; + +import net.miarma.backend.huertos.client.HuertosWebClient; +import net.miarma.backend.huertos.dto.HuertosLoginResponse; +import net.miarma.backend.huertos.dto.HuertosUserMetadataDto; +import net.miarma.backend.huertos.mapper.HuertosUserMetadataMapper; +import net.miarma.backend.huertos.model.HuertosUserMetadata; +import net.miarma.backend.huertos.service.HuertosUserMetadataService; +import net.miarma.backlib.dto.LoginRequest; +import net.miarma.backlib.dto.LoginResponse; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/auth") +public class HuertosAuthController { + private final HuertosUserMetadataService metadataService; + private final HuertosWebClient webClient; + + public HuertosAuthController(HuertosUserMetadataService metadataService, + HuertosWebClient webClient) { + this.metadataService = metadataService; + this.webClient = webClient; + } + + @PostMapping("/login") + public ResponseEntity login(@RequestBody LoginRequest req) { + LoginResponse coreResponse = webClient.login(req.username(), req.password()); + HuertosUserMetadata metadata = metadataService.getById(coreResponse.user().getUserId()); + return ResponseEntity.ok( + new HuertosLoginResponse( + coreResponse.token(), + coreResponse.user(), + coreResponse.account(), + HuertosUserMetadataMapper.toDto(metadata) + ) + ); + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/dto/HuertosLoginResponse.java b/huertos/src/main/java/net/miarma/backend/huertos/dto/HuertosLoginResponse.java new file mode 100644 index 0000000..f0c1baf --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/dto/HuertosLoginResponse.java @@ -0,0 +1,12 @@ +package net.miarma.backend.huertos.dto; + +import net.miarma.backlib.dto.CredentialDto; +import net.miarma.backlib.dto.UserDto; + +public record HuertosLoginResponse( + String token, + UserDto user, + CredentialDto account, + HuertosUserMetadataDto metadata +) { +}