forms - Tomcat 6 Ssl 和 Form 身份验证并行

标签 forms authentication tomcat ssl

是否可以在 Tomcat 6.xxx 中并行使用两种身份验证方法?

故事:现在我的应用程序在端口 80 和 443 上运行。在 443 连接器中,有 clientAuth="want"参数。 如果客户年龄超过 80 岁,则不需要证书。但是,当客户端通过 443 访问并且客户端在读卡器中具有智能卡时,即使客户端不想登录,也会自动询问证书。

对于使用用户证书登录,我有 FormFallBack 身份验证器,这意味着如果客户端没有发送证书(读卡器中没有智能卡)或身份验证器中的认证失败,身份验证器将定向到表单,他可以在其中登录密码和用户名。 我的英语不是很好,所以这里是类似系统的更好概述:http://wiki.apache.org/tomcat/SSLWithFORMFallback

但是,如果浏览器多次要求证书,如果用户不想使用智能卡登录(但他在读卡器中有它),而是希望使用用户名登录,则询问用户证书的过程对用户来说很烦人和密码。

有以下选项吗: 我有登录页面,其中有用户名和密码字段以及登录按钮。如果用户按下登录按钮,他将使用用户名和密码登录(定向到表单验证器)。

但在同一页面中有“使用智能卡登录”按钮。如果他按下此按钮,服务器会请求用户证书并将其提供给身份验证器。

希望您能理解这个问题。

最佳答案

我相信您必须编写自己的 Tomcat 身份验证器来理解这些要求。

这实际上可能是不可能的,因为 AFAICT 您要求能够在每个用户的基础上重新配置 SSL 连接器的行为,并且在 SSL 协商发生之前您无法为用户配置连接器.

关于forms - Tomcat 6 Ssl 和 Form 身份验证并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817683/

相关文章:

javascript - "Not a robot"recaptcha 没有 <form> 而是 AJAX

javascript - 如何防止提交表单并改为调用 jquery ajax

javascript - jquery 检查单选框是否在价格计算器上被选中

javascript - 使用 JavaScript 的基本身份验证

tomcat - Birt 4.2 JDBCException : Cannot load JDBC Driver class: com. mysql.jdbc.Driver(Tomcat 6.0)

java - 通过 WebView 将 HTML 表单加载到我的 Android 应用程序中?

ruby - 通过 ruby​​ 脚本设计身份验证

mongodb - 无法使用脚本中创建的用户对dockerized mongodb实例进行身份验证

wsman 配置文件中的 Apache 模块支持

tomcat - Nginx 作为使用 Kerberos 的应用程序的负载平衡器