Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅当用户选择此选项对系统进行身份验证时,如何启用相互身份验证?_Java_Ssl_Tomcat_Mutual Authentication - Fatal编程技术网

Java 仅当用户选择此选项对系统进行身份验证时,如何启用相互身份验证?

Java 仅当用户选择此选项对系统进行身份验证时,如何启用相互身份验证?,java,ssl,tomcat,mutual-authentication,Java,Ssl,Tomcat,Mutual Authentication,我们为用户提供不同类型的身份验证机制来验证我们的应用程序。 其中之一是使用安装在其上的智能卡证书。因此,我配置了tomcat server.xml文件(clientAuth=true),并将客户机证书添加到密钥库文件中。当用户点击主页面时,浏览器上会弹出用户的身份验证证书列表。当用户选择其中一个进行身份验证时,它会重定向到欢迎页面(登录页面),其中显示身份验证方法的列表。但我想实现的是,当用户点击主页面时,仍然应该首先显示欢迎页面。若用户仅在这种情况下选择通过证书进行身份验证,则应启用相互身份验

我们为用户提供不同类型的身份验证机制来验证我们的应用程序。 其中之一是使用安装在其上的智能卡证书。因此,我配置了tomcat server.xml文件(clientAuth=true),并将客户机证书添加到密钥库文件中。当用户点击主页面时,浏览器上会弹出用户的身份验证证书列表。当用户选择其中一个进行身份验证时,它会重定向到欢迎页面(登录页面),其中显示身份验证方法的列表。但我想实现的是,当用户点击主页面时,仍然应该首先显示欢迎页面。若用户仅在这种情况下选择通过证书进行身份验证,则应启用相互身份验证并在浏览器上显示用户的证书。但是,如果这不是用户选择的选项,我们就不应该要求最终用户提供证书,并使用他们将选择的不同选项对他们进行身份验证。我不能使用clientAuth=want,在登录页面之前仍然会弹出证书列表


目前,我感到困惑,因为我无法根据用户的偏好,仅使用一个tomcat server.xml文件来适应不同的情况。任何实现它的指南/提示都值得赞赏。

简单的回答是,您不能仅通过配置来实现这一点。您将需要至少编写一个自定义验证器,可能还需要编写一个自定义域


如果您使用web应用程序的多个实例,则应该可以使用仅配置的解决方案。一个需要客户端证书,另一个使用替代证书。缺点是,您必须部署两次大致相同的应用程序,只是使用不同的身份验证配置。

简单的回答是,您不能仅使用配置。您将需要至少编写一个自定义验证器,可能还需要编写一个自定义域

如果您使用web应用程序的多个实例,则应该可以使用仅配置的解决方案。一个需要客户端证书,另一个使用替代证书。缺点是您必须部署两次大致相同的应用程序,只是使用不同的身份验证配置