【问题标题】:Two-Factor Authentication for a tomcat java web application用于 tomcat java web 应用程序的两因素身份验证
【发布时间】:2020-05-14 18:04:52
【问题描述】:

我已经实现了一个带有 tomcat 域身份验证(自定义 FORM 身份验证)的简单 Java Web 应用程序。现在,我正在尝试为用户添加第二个身份验证页面(双因素身份验证,我使用的是 Google 身份验证器)。就我参考 Tomcat 文档而言,我们只能指定一个登录配置。

我尝试添加过滤器并尝试管理用户是否已使用会话和令牌手动完成双因素身份验证。

有没有办法在web.xml或者server.xml中添加二次认证。因此,tomcat 应该处理用户是否完成了两个身份验证。

提前致谢。

【问题讨论】:

  • 您好!欢迎来到 SO。为了获得答案,您可能应该在问题中包含一些代码来说明您尝试了什么,并输出显示出了什么问题以及在什么时候出错。
  • 我会包含它,但实现中没有错误。我在征求实施 2FA 的建议。感谢您的宝贵时间。

标签: java authentication tomcat web-applications two-factor-authentication


【解决方案1】:

Tomcat 只启动一个登录过程。该过程可能决定要求用户提供多个凭据,但 tomcat 不知道。

因此,您应该创建一个过滤器和/或登录 servlet 来处理 tomcat 容器的身份验证。该过滤器/servlet(组合)必须提示输入所有所需的凭据。

如果您没有为您的应用程序使用已经具有身份验证层的框架,那么您实际上是在编写自己的 2FA 实现。

【讨论】:

  • 我已经用过滤器实现了 2FA。我想问的是,一旦用户完成第一次身份验证,有没有办法通过更改 自动重定向到第二个登录页面(2FA)。我们不应该指定/手动重定向到 2FA 页面来完成身份验证。 Tomcat 应该检测到应该进行两次身份验证,因此用户应该无法在未完成身份验证过程的情况下访问应用程序资源。
  • 好吧,我想说的是tomcat不是一个2FA认证框架。它只知道需要身份验证,而不知道需要哪种身份验证。因此,如有必要,您的第一个因素应重定向到第二个因素。
  • 哦,好的。是否可以在 web.xml 中配置两个登录页面?所需的流程是 login_1 -> login_2-> 主页。谢谢。
  • 当然你可以为同一个url-pattern配置多个filter-mapping。 web.xml中的order就是执行的顺序。
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 2016-01-17
  • 2020-08-08
  • 2020-03-18
  • 2010-11-22
  • 1970-01-01
  • 2019-02-02
  • 2012-12-02
相关资源
最近更新 更多