模块化应用程序中的Spring Security插件

时间:2011-10-01 09:44:25

标签: security grails architecture spring-security

我正在开始一个新的模块化Grails应用程序。我正在创建一个域插件,当然还需要一个用户/人员域。

我是否将Spring Security Core插件添加到域中,只是为了生成其用户域?如果是这样,我是否也将插件添加到主应用程序。或者由于主应用程序将使用域插件,它是否会继承Spring Security插件?

在任何一种情况下,有什么我需要知道或做的不同,如果我只有1个域对象的应用程序?

更新

我将其添加到主应用程序的buildconfig中:

 plugins {
        . . .
        compile ":spring-security-core:1.2.1"
        . . .
    }   

grails.plugin.location.astdomain ="C:\\src\\astool\\astdomain"

在主应用中执行全部生成无效。我找不到的域名。所以我在域插件中生成了所有内容,然后将生成的代码移动到主应用程序中。即使生成的代码与域具有相同的包,我仍然会收到编译错误,说明找不到域。

2 个答案:

答案 0 :(得分:0)

查看plugins部分。我相信分发过程已经改变,因为Release plugin似乎正在成为主流/ Grails 2.0的事实标准。

这完全取决于你如何设置它。您应该能够将spring安全插件添加到您的插件中(这实际上就是您在构建模块化应用程序时所做的,将一个较大的插件构建为一系列插件)并指定插件依赖项,构建顺序等等。

使用正确的设置,您应该能够编写自包含的插件,在引用插件的主应用程序上运行grails install-plugin,然后使用包解析来访问主插件的域类app的其他课程。

答案 1 :(得分:0)

事实证明,唯一的问题是我将插件包含在错误的位置。

我有

grails.project.dependency.resolution = {

  . . .

 plugins {
        . . .
        compile ":spring-security-core:1.2.1"
        . . .
    }   

  grails.plugin.location.astdomain ="C:\\src\\astool\\astdomain"


}

但它需要包含在grails.project.dependency.resolution = {。 。 }:

grails.plugin.location.'astdomain' ="../astdomain"
grails.project.dependency.resolution = { . . }

另请注意,我现在有'astdomain'的引号。我不确定这是否重要,但我看到其他人这样做了。

我也使用更通用的语法:“../astdomin”。但“C:......”也有效。