Проверка экрана, проверка JPA и хэшированные пароли - PullRequest
1 голос
/ 24 февраля 2012

Я проверяю пароль пользователя с помощью регулярного выражения @Pattern.

Это прекрасно работает, но затем я хэширую пароль, в результате чего пароль намного превышает 16 символов, указанных моей проверкой.

Однако это правило проверки фильтруется до уровня JPA, поэтому мой хешированный пароль слишком длинный для правила проверки, и я получаю сообщение «Ошибка проверки для…», когда я пытаюсь сохранить свой объект.

Конечно, я упускаю что-то фундаментальное, но что это?

Спасибо

1 Ответ

0 голосов
/ 24 февраля 2012

Это типичный сценарий, и решений два:

  • use DTO - объекты, которые не являются объектами PA и используются для передачи данных с веб-уровня на уровень службы. Таким образом, вы помещаете проверку регулярного выражения только в DTO, а не в сущность
  • имеет поле @Transient repeatPassword и размещает проверку там, а не на том, который сохраняется в БД.

Короче - у вас не должно быть аннотации в поле вашего фактического пароля объекта. Отключение проверки для уровня персистентности является вариантом, но не является предпочтительным, поскольку оно может привести к множеству побочных эффектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...