В граалях я могу установить в поле пароля ограничение минимального размера 5 (произвольно). Проблема в том, что я использую Spring Security Service для кодирования моего пароля, а кодированный / зашифрованный пароль намного длиннее 5 символов, почти независимо от того, какое значение я ввел.
В другом ответе на форуме предлагалось выполнить эту проверку в методе сохранения. Кто-нибудь еще занимался этой проблемой и знает, как ее обойти?
Безопасность Spring не предоставляет метод декодирования (возможно, в целях безопасности) ... поэтому я думаю, что одной идеей было бы получить другой кодер пароля, который мог бы декодировать пароль для целей проверки ... но мой инстинкт говорит, что Spring безопасность оставляет это без веских оснований, и, может быть, мне тоже стоит ...
static constraints = {
username(blank: false, unique: true)
password(minSize: 5, blank: false, unique: true,
validator: { passwd, user ->
return passwd != user.username
})
passwordRepeat(nullable: false,
validator: { passwd2, user ->
return passwd2 == user.password
})
}
Поэтому я использую статические ограничения для проверки, так как большинство других переменных проверяются таким образом.
Мои извинения за нечитаемый комментарий.
Спасибо,
-Asaf
Edit: я думаю, что простое исправление, как упомянуто выше, выполняет проверку в методе сохранения (до шифрования), но я просто чувствую, что кто-то где-то должен был иметь дело с этой проблемой раньше. Я имею в виду, что существует очень много веб-сайтов, которым требуются пароли, и которые кричат на вас, если он слишком короткий, если он не содержит строчных и прописных букв, если у него нет символа ... Как все они делают различные методы проверки, которые они используют?