Grails 3拦截器作为插件

时间:2015-10-01 18:32:40

标签: grails grails-plugin interceptor grails-controller grails-3.0

我正在尝试将Grails 2控制器过滤器转换为Grails 3拦截器。拦截器是Grails插件。 Grails 3升级完成,当我将代码复制并粘贴到应用程序中(只是为了验证它是否有效),然后我看到拦截器的输出。

但是,如果我尝试通过插件将该代码引入应用程序,则拦截器不会运行。我可以验证插件是否正在拉动;当我点击某个动作时,它的拦截器就不被调用了。

例如,如果插件是:

// If added to app directly, works fine. As plugin, not invoked.
class SimpleInterceptor {
    SimpleInterceptor() {
        matchAll()
    }

    boolean before() {
      println 'test' // Does not print if using plugin
    }
}

控制器是一个简单的动作:

def index() {
   render 'success'
}

我是否需要以某种方式注册它以使拦截器能够在应用程序上运行?我错过了一步吗?

1 个答案:

答案 0 :(得分:0)

感谢@vahid指出一个做类似事情的回购。事实证明,当我升级插件的*Plugin.groovy文件时,我遇到的问题是,我没有延长grails.plugins.Plugin。请务必这样做,否则应用可能无法获取插件。