过滤涉及安全约束的请求

我有一个Java Web应用程序,它使用安全约束来锁定对资源的访问。 我正在尝试在Ajax请求需要身份validation时操纵HTTP 401响应,因此我创建了一个filter,用于在响应中观察HTTP状态并在需要时相应地修改它。

问题是,似乎如果需要身份validation,则在将401发送到浏览器之后才会调用filter。 似乎安全约束在请求处理链中的filter之前。 我的filter的url-pattern比任何安全约束更通用。 平台是WebSphere。

我无法看到Servlet 2.5规范中指定了安全性约束和filter的优先级。 我错过了什么吗?

首先,如果未指定,这意味着它将作为容器的实现细节保留。
所以你应该专门研究WebSphere
我认为在Tomcat也会发生同样的情况,因为安全性约束(如果我没记错)是通过Valves实现的,因此会在请求链中的应用程序代码之前。
从我的观点来看,这是有道理的,因为如果你将保护分配给你的容器,那么如果请求到达你的filter,那么它应该已经通过你的容器的认证机制(我的观点是filter是你资源的一部分) )。
在Tomcat中,您可以通过将Valve替换为Valve来解决您的问题