【问题标题】:Grails 3 Interceptors as a pluginGrails 3 拦截器作为插件
【发布时间】:2015-10-01 18:32:40
【问题描述】:

我正在尝试将 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'
}

我是否需要以某种方式注册它才能让拦截器在应用程序上工作?我错过了一步吗?

【问题讨论】:

  • 我没有搞砸,但注意到有这个插件似乎可以正常工作github.com/appcela/grails3-cors-interceptor。希望对你有帮助
  • 哦,有趣,谢谢@vahid,我会去看看。我也见过github.com/agorapulse/grails-newrelic,但我一生都无法弄清楚他在做什么而我没有,以及为什么它不起作用(不幸的是,由于它需要,因此无法对照我的测试项目检查它新遗物)。

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


【解决方案1】:

感谢 @vahid 指出一个正在做类似事情的 repo。原来我遇到的问题是当我升级插件的*Plugin.groovy 文件时,我没有扩展grails.plugins.Plugin。请务必这样做,否则插件可能不会被应用程序拾取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2019-06-29
    • 2023-03-22
    • 1970-01-01
    • 2016-08-05
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多