【问题标题】:Add servlet filter to a Grails app dynamically将 servlet 过滤器动态添加到 Grails 应用程序
【发布时间】:2014-04-24 23:51:08
【问题描述】:

我有一个场景,如果用户给我的 Grails 应用程序某种类型的输入,我想动态添加一个 javax.servlet.Filter impl (MyCustomerFilter) 以便所有后续对服务器的请求都通过这个过滤器.

换句话说,当 Grails 应用程序启动时,MyCustomFilter 没有被激活并且不在过滤器链中。但是当用户做某事时(比如说让 AJAX 回调到服务器端控制器),我想将 MyCustomFilter 添加到过滤器链并激活它(对于所有未来/后续请求)。

这可能吗?如果是这样,怎么做?如果不是,为什么?

【问题讨论】:

  • 为什么不将其添加到链中,但允许在过滤器本身内切换运行时实际过滤?
  • 谢谢@JoshuaMoore (+1) - 我想我不太关注你。您是说您可以激活/停用链上的过滤器(以编程方式)。如果是这样,我如何指定MyCustomFilter 在链上 - 但在启动时停用,然后,我如何在以后以编程方式激活它?
  • 见 Graeme 的回答,这就是我在评论中所描述的。

标签: java servlets grails runtime servlet-filters


【解决方案1】:

您不能动态添加过滤器,但是您可以添加过滤器来包装请求或仅根据用户输入将其沿过滤器链传递

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2015-11-11
    • 2010-12-25
    • 2018-10-28
    • 1970-01-01
    • 2016-03-04
    • 2016-10-21
    相关资源
    最近更新 更多