Return true token to user
This commit is contained in:
@ -1,16 +1,38 @@
|
|||||||
package ch.dlmw.swisssignchallenge.controllers;
|
package ch.dlmw.swisssignchallenge.controllers;
|
||||||
|
|
||||||
|
import ch.dlmw.swisssignchallenge.utils.JwtUtil;
|
||||||
import org.openapitools.api.TokenApi;
|
import org.openapitools.api.TokenApi;
|
||||||
import org.openapitools.model.CreateSessionRequest;
|
import org.openapitools.model.CreateSessionRequest;
|
||||||
import org.openapitools.model.CreateSessionResponse;
|
import org.openapitools.model.CreateSessionResponse;
|
||||||
import org.springframework.http.ResponseEntity;
|
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;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class TokenController implements TokenApi {
|
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
|
@Override
|
||||||
public ResponseEntity<CreateSessionResponse> createToken(CreateSessionRequest createSessionRequest) {
|
public ResponseEntity<CreateSessionResponse> 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);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user