在web.xml中以编程方式禁用过滤器

时间:2013-11-16 19:46:50

标签: java servlets spring-mvc filter web.xml

我们有什么方法可以在spring mvc中以编程方式禁用web.xmxl中声明的过滤器和过滤器映射?

我已经看到tomcat api中的StandardContext类公开了添加过滤器和过滤器映射的方法并将其删除。

要求是我们需要在不重新启动服务器的情况下禁用过滤器。 如果有任何方法可以在spring mvc中完成,我可以使用它来公开一个rest api,我们可以根据需要启用和禁用过滤器。

高度赞赏这方面的任何指示。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为实现此目的的唯一方法是在过滤器代码中使用某种“禁用标志”以避免其工作,即使不能从过滤器链中取消它。您可以创建一个通过上下文属性共享此标志的控制器,在每个过滤器调用中读取它并决定工作或简单地“传递”。 当然,如果您的过滤器已经是一个无法更改代码的黑盒子,那么这就变得不可能了。