屏幕验证、JPA验证和散列密码

  • 本文关键字:验证 密码 JPA 屏幕 java jpa
  • 更新时间 :
  • 英文 :


我正在使用@Pattern正则表达式验证用户密码。

这很好,但随后我对密码进行了散列,这会导致密码的长度远远超过我的验证指定的16个字符。

然而,这个验证规则正在过滤到我的JPA层,所以我的哈希密码对于验证规则来说太长了,我得到了一个"验证失败……"消息。

当然,我错过了一些基本的东西,但它是什么?

感谢

这是一个典型的场景,解决方案有两种:

  • 使用DTO-不是PA实体的对象,用于将数据从web层传输到服务层。因此,您只将regex验证放在DTO上,而不放在实体上
  • 有一个@Transient字段repeatPassword,并将验证放在那里,而不是放在数据库中持久化的字段上

简而言之,您不应该在实体的实际密码字段上有注释。关闭持久性层的验证是一种选择,但不是首选,因为这可能会导致很多副作用。

最新更新