当前位置: 首页 > 面试题库 >

过滤涉及安全约束的请求

东郭勇
2023-03-14
问题内容

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

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

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


问题答案:

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



 类似资料:
  • 安全约束是一种定义 web 内容保护的声明式方式。安全约束关联授权和或在 web 资源上对 HTTP 操作的用户数据约束。安全约束,在部署描述符中由 security-constraint 表示,其包含以下元素: web资源集合 (部署描述符中的 web-resource-collection) 授权约束 (部署描述符中的 auth-constraint) 用户数据约束 (部署描述符中的 user

  • 我试图在wildfly上保护一个演示web应用程序。我已经在单机版中定义了这个安全域。xml 然后在web-inf下,我在web.xml中定义了这个安全约束 以及jboss网站上的这些内容。xml 问题是,如果我转到/projects URL,我不会重定向到登录页面,就好像忽略了约束一样。

  • 在内部,如果出现任何异常,将被重定向&这不需要通过,可以跳过此请求。 我已经实现了OncePerRequestFilter&任何请求都不会调用它。这必须在OAuth过滤器之前调用。 让我知道这个安全配置出了什么问题。

  • 我需要创建一个容器,为我存储泛型类型的元素提供一种方式,有点像这个有效的Java模式,但是存储泛型的东西 有没有可能创建一个类型安全异构容器,其中涉及到泛型类型的东西? 我可以将添加为方法参数。示例: 有可能做到这一点吗? 怎么做,或者为什么不做?它是Java不做的事情还是基本的事情(所以没有语言可以做,或者只是做没有意义)

  • 我正在使用包(用于GHC Haskell)。我有一个类型族,用于确定类型级别列表是否包含一个元素: 这很有效,但有一件事它没有给我的知识是 因为类型族不是“is element of”语句的归纳定义(就像在agda中一样)。我很确定,在GADT可升级到类型级别之前,无法用数据类型表示列表成员身份。 所以,我使用了包来编写这个: 怪异,但它的工作。我可以在蕴含物上进行图案匹配来得到我需要的东西。我想

  • 问题内容: 说我有以下简单的Java bean: JSR 303中是否存在一种机制来创建自定义验证器,以验证startDate必须在endDate之前的约束? 在我看来,这是一个常见的用例,但是我找不到这种多属性关系约束的任何示例。 问题答案: 我可以想到一些尝试的方法。 您可以使用适当的验证器创建类型本身的目标: 您可以将日期范围封装为一种类型,并验证以下内容: 您可以添加执行检查的简单属性: