【问题标题】:Grails update embedded object but no encoding password using spring securityGrails使用spring security更新嵌入对象但没有编码密码
【发布时间】:2019-03-02 20:35:37
【问题描述】:

我正在尝试更新一个嵌入对象,但是当对象更新时,密码用户再次被编码。

我想将 Card 对象更新为 User 类。 UserService 应该只更新卡片对象,但它正在更新密码对象。

UserPasswordEncoderListener 是 grails spring 安全核心插件的默认值。

使用:

  • grailsVersion=3.3.8
  • grailsWrapperVersion=1.0.0
  • gormVersion=6.1.10.RELEASE
  • gradleWrapperVersion=3.5
  • mongodb:6.1.6

有什么想法吗?或者我做错了什么? 处理嵌入对象的最佳方法是什么?

github bug

用户类

客户类别

卡类

用户服务类

用户密码编码器监听器

【问题讨论】:

    标签: mongodb grails spring-security grails-3.3 gorm-mongodb


    【解决方案1】:

    看起来密码也在某处更新,所以 UserPasswordEncoderListener 中的 u.isDirty( 'password' ) 返回 true

    您应该能够通过将其设置为 null 来禁止密码更新。

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 2020-02-08
      • 2015-08-10
      • 2012-01-17
      • 2014-04-23
      • 2016-01-23
      • 2019-10-26
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多