Главная » 2015 » Сентябрь » 14 » Workaround @Email annotation to require top-level domain in email
10:37
Workaround @Email annotation to require top-level domain in email
При использовании @Email валидатора от Hibernate я сразу же столкнулся с проблемой: он не считает ошибочными электронные адреса в которых указан локальный домен. Например, coder@localhost признаётся валидным. Это верно, ведь и на локальную машину можно отправить почту, но в большинстве web-приложений ожидаются адреса в доменах второго и выше уровнях. Что ж, давайте попробуем с этим что-нибудь сделать. Конечно же мы не первые кто столкнулся с этим: Hibernate validator: @email accepts ask@stackoverflow as valid? Есть даже тикет на по этому поводу в трекере: Add Email annotation parameter to require top level domain names in addresses Но как быть если решение необходимо right now?В одном из ответов на StackOverflow предлагают взять регулярное выражение, которое hibernate-validator использует для проверки e-mail и подправить его под свои нужды. Выглядит в принципе неплохо, ведь понятно что это временный костыль. Но я решил сделать иначе :)Copy&paste-ить регулярку мне не хотелось, ведь есть шанс, что баг будут исправлять не скоро (если ещё будут), а вот изменения в regexp могут внести, и появится проблема с рассинхронизацией между моим маленьким fork-ом и upstream-ом.Предлагаю на суд общественности следующее решение: создать свою аннотацию, которая будет объединять существующую аннотацию @Email с дополнительным регулярным выражением, единственной целью которого будет убедиться, что после собаки домен, как минимум, второго уровня.
Просмотров: 361 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar