Валидация параметров запроса в spring

Хочу написать ограничение на количество символов логина и пароля при регистрации пользователя.

@Controller
public class RegisteredController {
    @Autowired
    DataBaseAssistant dataBaseAssistant;

    @Autowired
    BCryptPasswordEncoder bCryptPasswordEncoder;

    @PostMapping("/registration")
    public String registration(@RequestParam("username") @Size(min = 3) @NotBlank String username,
                               @RequestParam("password") @Size(min = 3) @NotBlank String password,
                               @RequestParam("confirm") String confirm){
        if(!username.equals("admin")
                && confirm.equals(password)
                && dataBaseAssistant.addUser(username, bCryptPasswordEncoder.encode(password))){
            return "index";
        } else return "forRegistration";
    }
}

Страница, посылающая запрос:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Регистрация</title>
</head>
<body><form method="POST" action="/registration">
    <h2>Регистрация</h2>
    <div>
        <input name="username" type="text" placeholder="Username"
               autofocus="true"/>
        <input name="password" type="password" placeholder="Password"/>
        <input name="confirm" type="password" placeholder="Confirm password">
        <button type="submit">Зарегистрироваться</button>
    </div>
</form>
</body>
</html>

В документации сказано, что при неудовлетворении условий валидации возвращается HTTP статус 400, но этого не происходит, равно как не возникает любых других исключений. Пробовал дописывать аннотацию @EnableWebMvc к main классу, но это полностью ломает приложение, поскольку оно перестаёт осуществлять переход между html страницами. Что мне нужно сделать, чтобы обрабатывать результаты валидации?


Ответы (0 шт):