Grails:从BootStrapDevelopment调用受权限保护的Service方法

时间:2013-10-01 19:27:07

标签: grails spring-security initialization

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

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

我想从BootStrapDevelopment预先填充很多这些Domain类。

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

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

任何帮助都会非常感激。

感谢。

1 个答案:

答案 0 :(得分:2)

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

class BootStrapDevelopment {
  def init = {
    //after creating the user...
    SpringSecurityUtils.doWithAuth("USERNAME") {
      //create and save domains...
      MyDomain myDomain = new MyDomain()
    }
  }
}