如何从另一个 grails 插件配置 grails 插件

Posted

技术标签:

【中文标题】如何从另一个 grails 插件配置 grails 插件【英文标题】:How to configure a grails plugin from another grails plugin 【发布时间】:2012-10-19 03:59:11 【问题描述】:

我正在尝试编写一个可以在多个 grails 应用程序中重复使用的插件。 该插件基本上应该是 spring security core 和 ldap 插件的包装器。

这意味着它应该包含:

用户/角色的域类 spring security的配置(这些域类的映射,一些默认的URL访问角色配置)

我的问题是我的插件中的配置无法正常工作。我对到目前为止发现的示例感到困惑:有时我读到配置应该简单地转到“Config.groovy”但是grails docs 声明该文件最终不是插件的一部分。在某些示例中,它表示您必须将配置放在任何其他 .groovy 文件中,并用一些标识符将其包装,如下所示:

myConfigName 
    // normal config here

然后通过一些 slurper 将其加载到 MyWrapperPlugin.groovy 类的 doWithSpring 闭包中。但是,如果我理解正确,这只会将配置放在 grails.plugin.mywrapper 命名空间中。

到目前为止,我找不到任何尝试实现相同目标的示例(在另一个插件中设置插件的配置)。

感谢任何示例/提示,谢谢!

【问题讨论】:

【参考方案1】:

你可以使用Grails Platform Core那个

为插件提供功能,以实现彼此之间以及与应用程序的更大集成

Configuration API 正是您要找的。只需在插件描述符文件 (*GrailsPlugin.groovy) 中添加 doWithConfig:

def doWithConfig =  config ->
  application 
    grails.plugins.springsecurity.ldap.active=true
    ...
  

【讨论】:

以上是关于如何从另一个 grails 插件配置 grails 插件的主要内容,如果未能解决你的问题,请参考以下文章

Grails 如何记录安全插件活动

如何为 grails 插件配置日志记录?

使用 Nexus 存储库配置 Grails 插件

Grails:从另一个标签库中调用一个标签库

如何在 grails 中禁用 log4j 插件?

Grails spring安全核心插件:如何删除ajax请求的浏览器提示