可以从另一个插件覆盖插件的Controller吗?

时间:2012-08-29 08:26:54

标签: grails plugins grails-plugin

我正在开发一个插件(MyPlugin),它结合了一些安全功能,将其用作我下一个Grails应用程序的标准插件。它集成了Spring-Security-CoreSpring-Security-UI插件,通过安装,所有依赖项都应该通过在BuildConfig中添加依赖项来自动安装:plugins { compile: ...}

到目前为止一切正常,但在MyPlugin中我通过覆盖Spring-Security-UI来改变UserController插件(用户域中的密码编码)的行为。执行MyPlugin会导致预期的行为,并使用正确的Controller创建新用户。

但是,在另一个Grails应用程序中安装MyPlugin时,此行为将失败,并使用UserController插件的原始Spring-Security-Ui

我尝试通过在dependsOn文件中配置loadAfterGrailsPlugin属性来解决此问题,但没有取得任何成功。

有可能解决这个问题吗?或者只能覆盖主应用程序中的行为/控制器?

1 个答案:

答案 0 :(得分:0)

Grails 2.2具有控制器的命名空间 http://grails.org/doc/2.2.0.RC1/guide/introduction.html#whatsNew22

所以你可以加入像

这样的东西
def index() {
        redirect controller: 'user', action: 'list', plugin: 'springSecurity'
    }