0

我正在编写 Tomcat 应用程序并针对 Google 的 oauth2 服务进行身份验证。我本来打算写一个简单Filter的来做身份验证,但是没有办法在Filter. 据我了解,您必须Filter实现调用HttpServletRequestWrapper并将其设置在该类中,如本文所示

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

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

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

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

4

1 回答 1

0

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

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

于 2012-12-02T05:20:55.060 回答