Lỗi valid trong java springboot

mọi người cho em hỏi , sao valid của em nó ko hoạt động như mong muốn ạ ?

ở console thì in ra
Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0]

phía postman với dạng json là
{
“email”:null,
“numberPhone”:“test”,
“userName”:“test”,
“password”:“test”
}

và trả về status 403 bidden

@RestController
@RequestMapping("/api/v1/public/auth")
public class SignUpAPI {

@Autowired
@Qualifier("AuthenticationImplementation")
AuthenticationServiceAPI authenticationServiceAPI;

@PostMapping("/signup")
public ResponseEntity<?> signup(@Valid @RequestBody SignupRequest signupRequest) {
    return authenticationServiceAPI.signUp(signupRequest);
}

}

@Data
public class SignupRequest {

@NotNull(message = "Email is null")
@NotBlank(message = "Email is blank")
private String email;

private String numberPhone;
private String userName;
private String password;
private Set<String> listRoles;

}

public interface AuthenticationServiceAPI {

ResponseEntity<String> signUp( SignupRequest signupRequest);

LoginResponse login(LoginRequest loginRequest);

}

@Service(“AuthenticationImplementation”)
@Validated
public class AuthenticationImplementation implements AuthenticationServiceAPI {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private JsonWebTokenProvider jsonWebTokenProvider;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;

@Override
public ResponseEntity<String> signUp( SignupRequest signupRequest) {


    if (userService.existsByUsername(signupRequest.getUserName())) {
        return ResponseEntity.badRequest().body("Name is duplicated");
    }

    if (userService.existsBynumberPhone(signupRequest.getNumberPhone())) {
        return ResponseEntity.badRequest().body("Number phone is duplicated");

    }

    if (userService.existsByEmail(signupRequest.getEmail())) {
        return ResponseEntity.badRequest().body("Email is duplicated");

    }
    Users user = new Users();

    user.setEmail(signupRequest.getEmail());
    user.setNumberPhone(signupRequest.getNumberPhone());
    user.setUsername(signupRequest.getUserName());
    user.setPassword(passwordEncoder.encode(signupRequest.getPassword()));

    Set<Roles> listRoles = new HashSet<>();
    Roles userRole = roleService.findByRoleName(ERole.ROLE_USER).orElseThrow(() -> new RuntimeException("Error : Role user is not found"));

    listRoles.add(userRole);

    user.setListRoles(listRoles);

    userService.save(user);
    return ResponseEntity.ok(new String("User signed up successfully!"));
}
@Override
public LoginResponse login(LoginRequest loginRequest) {

    // authenticate requested user information
    Authentication authentication = authenticationManager.authenticate(
            new UsernamePasswordAuthenticationToken(
                    loginRequest.getUsername(),
                    loginRequest.getPassword()
            )
    );

    /**
     * If no exception occurs, the information is valid
     * Set authentication information into Security Context
     */
    SecurityContextHolder.getContext().setAuthentication(authentication);
    CustomUserDetails customUserDetails = (CustomUserDetails) authentication.getPrincipal();

    // return jwt for user
    String jwt = jsonWebTokenProvider.generateToken((CustomUserDetails) authentication.getPrincipal());

    List<String> listRoles = customUserDetails.getAuthorities().stream()
            .map(item -> item.getAuthority()).collect(Collectors.toList());

    /**
     * special line code for java swing
     */
    PasswordManager.getInstance().setPassword(customUserDetails.getPassword());

    return new LoginResponse(jwt,
            "Bearer",
            customUserDetails.getUser().getEmail(),
            customUserDetails.getUser().getNumberPhone(),
            customUserDetails.getUsername(),
            listRoles.toString());
}

@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public Map<String, String> handleValidationExceptions(
        MethodArgumentNotValidException ex) {
    Map<String, String> errors = new HashMap<>();
    ex.getBindingResult().getAllErrors().forEach((error) -> {
        String fieldName = ((FieldError) error).getField();
        String errorMessage = error.getDefaultMessage();
        errors.put(fieldName, errorMessage);
    });
    return errors;
}

}

em có thử sang 1 api khác , gọi trực tiếp ko thông qua interface nào và valid thành công

nhưng riêng code trên thì bị lỗi như trên , mong mọi người giúp đỡ ạ

Sao em không bỏ hết code của em vào thẻ code?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?