gpt4 book ai didi

java - tomcat 中的 HttpServletRequestWrapper 和 Filter 生命周期

转载 作者:行者123 更新时间:2023-11-28 23:46:27 24 4
gpt4 key购买 nike

我正在编写一个 Tomcat 应用程序,并根据 Google 的 oauth2 服务进行身份验证。我原本打算编写一个简单的 Filter 来进行身份验证,但无法在 Filter 中设置用户主体。根据我的理解,您必须让 Filter 调用已实现的 HttpServletRequestWrapper 并将其设置在该类中 as seen in this post

我很确定 Tomcat 只会实例化您可能已定义的每种类型的一个 Filter,并且所有请求都会沿着 Filter 链通过这个单个对象(如果我错了)。

链接代码中,代码调用是否正确

next.doFilter(new UserRoleRequestWrapper(user, roles, request), response);

每个请求都在哪里实例化一个新的 UserRoleRequestWrapper?这个过滤器是否应该有一个实例化的请求包装器来共享所有请求?我很难找到有关此类类规范的文档。

最佳答案

我认为过滤器不是您要找的东西。似乎不适合这个目的......过滤器不是为这样的用例创建的;它们是为处理请求和响应的前/后处理而创建的,重点是处理实际的请求/响应数据,而不是客户端-服务器通信的其他方面(例如安全性)。请记住,对用户进行身份验证可能会产生比处理 HTTP 请求周期更多的影响。安全性在比 HTTP 周期更低的级别上与 JavaEE 框架相关联。

如果你想针对 oauth2 进行身份验证,你最好为它实现某种 JAAS 实现,并将其插入 Tomcat。

关于java - tomcat 中的 HttpServletRequestWrapper 和 Filter 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com