modified backend @PostMapping("login") endpoint to return User (#19, #18)

This commit is contained in:
Art
2021-09-18 08:34:01 +03:00
parent efad81dda5
commit e891ef29a1
2 changed files with 14 additions and 17 deletions

View File

@ -46,21 +46,15 @@ public class UserResource {
} }
@PostMapping("login") @PostMapping("login")
public ResponseEntity<HttpResponse> login(@RequestBody User user) { public ResponseEntity<User> login(@RequestBody User user) {
authenticate(user.getUsername(), user.getPassword()); authenticate(user.getUsername(), user.getPassword());
UserDetails userDetails = userService.loadUserByUsername(user.getUsername()); UserDetails userDetails = userService.loadUserByUsername(user.getUsername());
User byUsername = userService.findByUsername(user.getUsername());
HttpResponse httpResponse = HttpResponse.builder()
.httpStatus(OK)
.reason(OK.getReasonPhrase().toUpperCase())
.message("User logged in successfully")
.httpStatusCode(OK.value())
.build();
return ResponseEntity.ok() return ResponseEntity.ok()
.header(SecurityConstants.JWT_TOKEN_HEADER, jwtTokenProvider.generateJwtToken(userDetails)) .header(SecurityConstants.JWT_TOKEN_HEADER, jwtTokenProvider.generateJwtToken(userDetails))
.body(httpResponse); .body(byUsername);
} }
@PostMapping("add") @PostMapping("add")

View File

@ -198,20 +198,23 @@ class UserResourceTest extends BaseUserTest {
.username(username) .username(username)
.password(password) .password(password)
.build(); .build();
var responseEntity = restTemplate.postForEntity("/user/login", userLogin, HttpResponse.class); var responseEntity = restTemplate.postForEntity("/user/login", userLogin, User.class);
//then //then
log.debug("Response Entity: {}", responseEntity); log.debug("Response Entity: {}", responseEntity);
assertThat(responseEntity.getStatusCode()).isEqualTo(OK); assertThat(responseEntity.getStatusCode()).isEqualTo(OK);
assertThat(responseEntity.getBody()) assertThat(responseEntity.getBody())
.isNotNull() .isNotNull()
.hasNoNullFieldsOrProperties() .hasNoNullFieldsOrPropertiesExcept("lastLoginDate", "lastLoginDateDisplay", "password")
.satisfies(httpResponse -> assertAll( .hasFieldOrPropertyWithValue("username", fakeUser.getUsername())
() -> assertThat(httpResponse.getHttpStatusCode()).isEqualTo(200), .hasFieldOrPropertyWithValue("email", fakeUser.getEmail())
() -> assertThat(httpResponse.getHttpStatus()).isEqualTo(OK), .hasFieldOrPropertyWithValue("firstName", fakeUser.getFirstName())
() -> assertThat(httpResponse.getReason()).isEqualTo("OK"), .hasFieldOrPropertyWithValue("lastName", fakeUser.getLastName())
() -> assertThat(httpResponse.getMessage()).isEqualTo(expectedMessage) .hasFieldOrPropertyWithValue("isActive", true)
)); .hasFieldOrPropertyWithValue("isNotLocked", true)
.hasFieldOrPropertyWithValue("role", "ROLE_ADMIN")
.satisfies(u -> assertThat(u.getProfileImageUrl()).endsWith(String.format("/user/image/profile/%s/avatar.jpg", u.getUserId())));
String token = responseEntity.getHeaders().getFirst(JWT_TOKEN_HEADER); String token = responseEntity.getHeaders().getFirst(JWT_TOKEN_HEADER);
log.debug("Token: {}", token); log.debug("Token: {}", token);
assertThat(token).isNotBlank(); assertThat(token).isNotBlank();