filter在Struts2中不起作用
由于某种未知的原因,我无法在struts2上使用filter。 我正在使用apache tomcat并使用filter限制用户访问(我喜欢而不是拦截器)。 有没有理由为什么我的/tela-paciente
请求没有被过滤?
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* Paciente br.ufg.inf.sas.filtros.FiltroPaciente Paciente /tela-paciente
您是否尝试将filter映射设置为“/ tela-paciente / *”(
)?
您的问题是一个tomcat问题,该特定映射中没有任何内容与struts相关。
Steven Benitez下面的陈述是正确的 – 我的不好(“没有人会去你的安全filter”)。
关于filter的更一般信息:它们被处理,除非其中一个filter通过不调用filter链来停止处理(这可能就是这种情况 – 这应该是一种罕见的事情,仅在处理exception时使用,当重定向URL或阻止页面加载)。 您可以将任意数量的filter绑定到重叠的URL集。
另外要记住的是,在您的示例中,/ tela-paciente的映射发生在/ *(对于Struts2filter)的映射之后,因此所有请求都将映射到Struts2,并且没有任何请求将转到您的安全filter。
请记住,filter的顺序很重要。 🙂
@totaam: StrutsPrepareAndExecuteFilter
不链接到其他filter,除非:
- 请求URL由
struts.action.excludePattern
属性排除在处理之外 - 请求不会映射到操作或静态资源
因此,假设他的请求映射到某个操作,如果它在Struts2filter之后映射,则不会调用其安全filter。
- Shell(bash)使用Java的runtime.exec扩展大括号
- Timer和Meter指标的分钟率表示什么
- 如何为Java应用程序创建简单的分布式Map?
- 转换Stripes应用程序以使用友好URL
- 使用java查询MySQL数据库
- 可变或不可变的类?
- PIG – 找到接口org.apache.hadoop.mapreduce.JobContext,但是类是预期的
- “在注释ConcurrentHashMap时,在hibernate中非法尝试将非集合映射为@OneToMany,@ ManyToMany或@CollectionOfElements”
- 具有分页的Spring-Data FETCH JOIN不起作用