小编典典

过滤涉及安全约束的请求

java

我有一个使用安全性约束来锁定对资源访问的Java Web应用程序。当Ajax请求需要身份验证时,我试图操纵HTTP
401响应,因此我创建了一个过滤器,该过滤器观察响应中的HTTP状态,并在需要时进行相应的修改。

问题是,如果需要身份验证,则直到将401发送到浏览器后,过滤器才会被调用。安全约束似乎在请求处理链中的过滤器之前。我的过滤器的url模式比任何安全约束都更通用。平台是WebSphere。

我看不到Servlet 2.5规范在哪里指定了安全约束和过滤器的优先级。我错过了什么吗?


阅读 232

收藏
2020-11-30

共1个答案

小编典典

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

2020-11-30