суббота, 15 июля 2017 г.

Путаница с компонентом PasswordTextField в Wicket Framework


В нашем проекте используется Wicket Framework (восьмая версия).

Раньше для ввода/редактирования пароля в форме использовался компонент RequiredTextField , сейчас для большей безопасности  решили использовать PasswordTextField.

 ,при использовании компонента  PasswordTextField в странице изменения профиля ,  возникла ошибка: ,  пароль стал  удаляться из базы данных при загрузке страницы.
При этом мы не пароль нигде не удаляли.
После продолжительных поисков решение проблеммы нашлось:
 PasswordTextField удаляет пароль из модели.
/** * Overriden to nullify the password. */@Overrideprotected void onDetach()
{
   if (resetPassword) {
      clearInput();

      if (getModel() != null) {
         getModel().setObject(null);
      }
   }

   super.onDetach();
}

У нас появилось предположение ,что пароль из базы данных удаляется ради безопасности и оно нашло подтвержение в документации раздел 11.4.2