1

我有一个 Grails Domain 类,它在保存到数据库之前需要进行一些预处理。此预处理在 Grails 服务方法中完成。

我们的 Grails 服务方法都受到必需的用户角色和 Spring 安全服务的保护。

我想从 BootStrapDevelopment 中预填充很多这些域类。

但是我不能调用 Service 方法,因为 BootStrapDevelopment 没有所需的角色。

我已经搜索但找不到如何强制 BootStrapDevelopment 使用特定角色。

任何帮助将非常感激。

谢谢。

4

1 回答 1

3

创建特定的管理员用户并关联角色。然后将您的插入物包裹在SpringSecurityUtils.doWithAuth(). 这将认为 admin 用户已对您在闭包内执行的所有内容进行了身份验证。示例(不完整):

class BootStrapDevelopment {
  def init = {
    //after creating the user...
    SpringSecurityUtils.doWithAuth("USERNAME") {
      //create and save domains...
      MyDomain myDomain = new MyDomain()
    }
  }
}
于 2013-10-01T19:57:57.920 回答