Tworze REST Api które będzie wykorzystywane przez mój frontend, no i mam request który tworzy zapisuje coś na bazie danych, wraz z ID autora tego czegoś. API jest zabezpieczone przy pomocy JWT, tak więc po każdym wpuszczonym do systemu requescie mogę wyciągnąć dane użytkownika chociażby w taki sposób
@Getter
@AllArgsConstructor
public class CreateStuffRequest {
private final String stuff;
private final String userId;
}
@RestController
@RequestMapping("/api/stuff")
@AllArgsConstructor
public class StuffController {
private final StuffService stuffService;
@PostMapping
ResponseEntity<Stuff> createStuff(@RequestBody CreateStuffRequest request) {
final String userId = SecurityContextHolder.getContext().getAuthentication().getName();
return ResponseEntity.ok(stuffService.createStuff(new CreateStuffRequest(request.getStuff(), userId)));
}
}
Pytanie tylko czy takie podejście jest lepsze / gorsze od załatwienia tego po stronie frontendu, czyli wysłania CreateStuffRequest z userId w body? W takim przypadku powinienem chyba i tak po stronie backendu walidować czy podane userId w body == userId w SecurityContext, tak więc i tak będę musiał do tego Contextu sięgnąć.