From 3333f8b292687340fe4bd6b52bcc07e1fc8592c1 Mon Sep 17 00:00:00 2001 From: dylan Date: Thu, 30 Jan 2025 17:50:37 +0100 Subject: [PATCH] Return true token to user --- .../controllers/TokenController.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/ch/dlmw/swisssignchallenge/controllers/TokenController.java b/src/main/java/ch/dlmw/swisssignchallenge/controllers/TokenController.java index c9ecc21..16d3bd2 100644 --- a/src/main/java/ch/dlmw/swisssignchallenge/controllers/TokenController.java +++ b/src/main/java/ch/dlmw/swisssignchallenge/controllers/TokenController.java @@ -1,16 +1,38 @@ package ch.dlmw.swisssignchallenge.controllers; +import ch.dlmw.swisssignchallenge.utils.JwtUtil; import org.openapitools.api.TokenApi; import org.openapitools.model.CreateSessionRequest; import org.openapitools.model.CreateSessionResponse; import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.web.bind.annotation.RestController; @RestController public class TokenController implements TokenApi { + private final AuthenticationManager authenticationManager; + private final UserDetailsService userDetailsService; + private final JwtUtil jwtUtil; + + public TokenController(AuthenticationManager authenticationManager, UserDetailsService userDetailsService, JwtUtil jwtUtil) { + this.authenticationManager = authenticationManager; + this.userDetailsService = userDetailsService; + this.jwtUtil = jwtUtil; + } + @Override public ResponseEntity createToken(CreateSessionRequest createSessionRequest) { - var response = new CreateSessionResponse("blabla"); + authenticationManager.authenticate( + new UsernamePasswordAuthenticationToken(createSessionRequest.getUsername(), createSessionRequest.getPassword()) + ); + + UserDetails userDetails = userDetailsService.loadUserByUsername(createSessionRequest.getUsername()); + + var response = new CreateSessionResponse(jwtUtil.generateToken(userDetails)); + return ResponseEntity.ok(response); } }