'Spring boot built-in validators show error on console but nothing on postman response
I am using a POST request and at the same time I'm checking whether the users passed in are valid or not. After reading a guide on validation (Here is the guide https://www.baeldung.com/spring-validation-message-interpolation). I found out that Spring Boot would pass the error message and 400 Bad Request inside of Postman. When I try to do the same actions, I don't get anything in the postman console. I just get the bad request message, and that's all basically. No error object is passed into postman the console remains empty.
This is my POST Controller:
@PostMapping("/user/create")
public ResponseEntity<?> registerUser(@Valid @RequestBody SignupRequest signUpRequest) {
if (userRepository.existsByEmail(signUpRequest.getEmail())) {
return ResponseEntity
.badRequest()
.body(new MessageResponse("Email déjà utilisé!"));
}
// Create new user's account
User user = new User(
signUpRequest.getEmail(),
encoder.encode(signUpRequest.getPassword()),
signUpRequest.getFirstName(),
signUpRequest.getLastName(),
signUpRequest.getEnabled()
);
Set<String> strRoles = signUpRequest.getRoles();
Set<Role> roles = new HashSet<>();
System.out.println(signUpRequest.getRoles());
if (strRoles == null)
{
Role candidatRole = roleRepository.findByName(ERole.CANDIDAT)
.orElseThrow(() -> new RuntimeException("Role introuvable"));
roles.add(candidatRole);
} else
{
strRoles.forEach(role -> {
switch (role)
{
case "admin":
Role adminRole = roleRepository.findByName(ERole.ADMIN)
.orElseThrow(() -> new RuntimeException("Role introuvable"));
roles.add(adminRole);
break;
case "rh":
Role rhRole = roleRepository.findByName(ERole.RH)
.orElseThrow(() -> new RuntimeException("Role introuvable"));
roles.add(rhRole);
break;
case "manager":
Role managerRole = roleRepository.findByName(ERole.MANAGER)
.orElseThrow(() -> new RuntimeException("Role introuvable"));
roles.add(managerRole);
break;
default:
Role candidatRole = roleRepository.findByName(ERole.CANDIDAT)
.orElseThrow(() -> new RuntimeException("Role introuvable"));
roles.add(candidatRole);
}
});
}
user.setRoles(roles);
userRepository.save(user);
return ResponseEntity.ok(new MessageResponse("Utilisateur créé avec succès!"));
}
and This is my SignUpRequest DTO:
package com.test.app.payload.request;
import java.util.Set;
import javax.validation.constraints.*;
public class SignupRequest {
@NotBlank(message = "l'email doit avoir une valeur")
@Size(max = 50)
@Email(message = "Il faut respecter le format de l'email")
private String email;
@NotBlank
@Size(min = 6, max = 40)
private String password;
@NotBlank
private String firstName;
@NotBlank
private String lastName;
@NotNull
private Boolean enabled;
@NotEmpty
private Set<String> roles;
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Set<String> getRoles() {
return this.roles;
}
public void setRoles(Set<String> roles) {
this.roles = roles;
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|




