运行 Grails 域上的初始化函数 class

Run initializing function on Grails domain class

我有一个 AuthToken 域模型。它接受一个 token_string,这是一个 JWT 令牌。

class AuthToken {
  String token_string
}

通过 new AuthToken(token_string: '...') 初始化 AuthToken 后,我想解析令牌,并适当地设置 class 的属性。例如过期应该根据token来设置。

如果令牌因任何原因无效,我想使 AuthToken 无效(即 token.validate() 应该是假的)。

如何使用 Grails / GORM 完成此操作?

我建议添加一个静态工厂方法来解析令牌 String 和 return 和 AuthToken。由于您正在处理域 class,因此我会避免添加构造函数 AuthToken(String tokenString),因为这样默认的基于 Map 的构造函数将被删除。你可能不想要那个(GORM 也不想要)。

class AuthToken {
  String token_string
  String someProperty

  static AuthToken parse(String token_string) {
      new AuthToken(token_string: token_string).with {
          someProperty = token_string.reverse() // an example

          return delegate
      }
  }
}

def token = AuthToken.parse(aTokenString)