【问题标题】:Spring Security Plugin in Modular Applications模块化应用程序中的 Spring Security 插件
【发布时间】:2011-11-28 23:40:18
【问题描述】:

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

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

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

更新

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

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

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

在主应用程序中生成所有内容不起作用。找不到我指定的域。所以我在域插件中生成了所有内容,然后将生成的代码移动到主应用程序中。即使生成的代码与域具有相同的包,我仍然会收到一个编译错误,提示找不到域。

【问题讨论】:

    标签: security grails architecture spring-security


    【解决方案1】:

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

    这完全取决于您的设置方式。您应该能够将 spring security 插件添加到您的插件中(这基本上是您在构建模块化应用程序时所做的,将更大的应用程序构建为一系列插件)并指定插件依赖项、构建顺序等方式.

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

    【讨论】:

    • 如,您希望主应用程序生成所有脚本以从插件中提取内容吗?您必须破解应用程序的全部生成,或者(更可扩展地)编写插件添加到执行此操作的应用程序的 Groovy 脚本。我自己从来没有这样做过,但从概念上讲这是可行的。您可能想查看 Spring Security Core 插件的内部结构并了解 S2-Quickstart 是如何工作的,因为您基本上会做类似的事情(也许您的脚本会接受参数,然后将工作委托给另一个)
    • 对,我的域在域插件中。但我希望能够在 UI 所在的主应用程序中使用脚手架。但正如更新所说,这不起作用。也不会将生成的代码从插件移动到主应用程序。
    • 看来你应该在域插件中安装 Spring Security Core 插件,运行 S2-quickstart 脚本来获取域对象,然后添加一个脚本来生成可以调用的控制器和视图在主应用程序中安装您的插件。也可以让您的插件在 grails 脚本过程中监听并响应某些事件,例如 Spock 插件用 Spock Specs 替换了默认测试框架的脚手架。您可能想调查它是如何做到的。
    • 我接受这个答案,因为它基本上是正确的,如果缺少一些细节的话。但请在下面查看我自己的答案。感谢您的帮助。
    【解决方案2】:

    原来唯一的问题是我将插件包含在错误的位置。

    我有

    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:...”也可以。

    【讨论】:

      猜你喜欢
      • 2014-01-25
      • 2019-11-05
      • 2014-02-15
      • 1970-01-01
      • 2015-03-27
      • 2014-02-17
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多