我有一个Grails Domain类,它在保存到数据库之前有一些必需的预处理。此预处理在Grails服务方法中完成。
我们的Grails服务方法都受到所需用户角色和Spring Security服务的保护。
我想从BootStrapDevelopment预先填充很多这些Domain类。
但是我无法调用Service方法,因为BootStrapDevelopment没有所需的角色。
我已搜索但无法找到如何强制BootStrapDevelopment使用特定角色。
任何帮助都会非常感激。
感谢。
答案 0 :(得分:2)
创建特定的管理员用户并关联该角色。然后将您的插入包装在SpringSecurityUtils.doWithAuth()
中。这会将admin用户视为对在闭包内执行的所有内容进行身份验证。示例(不完整):
class BootStrapDevelopment {
def init = {
//after creating the user...
SpringSecurityUtils.doWithAuth("USERNAME") {
//create and save domains...
MyDomain myDomain = new MyDomain()
}
}
}