Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
多个Https Tomcat连接器一个需要客户端身份验证一个不需要';T_Tomcat_Web Applications_Https_Webserver_Authentication - Fatal编程技术网

多个Https Tomcat连接器一个需要客户端身份验证一个不需要';T

多个Https Tomcat连接器一个需要客户端身份验证一个不需要';T,tomcat,web-applications,https,webserver,authentication,Tomcat,Web Applications,Https,Webserver,Authentication,我正在开发一个组件,该组件需要通过https连接到没有客户端身份验证的用户,并在启用客户端身份验证的情况下与其他组件通信 我想用两个安全连接器启动组件,一个启用客户端身份验证,比如C1,另一个禁用,比如C2 我还想配置我的组件的哪个servlet将使用连接器C1运行,哪个servlet将在C2上运行 有什么解决办法吗?我得到了这个问题的部分答案 您可以在servlet.xml配置中为tomcat添加多个连接器,一个在8443上启用了客户端身份验证,另一个在8444端口上没有启用客户端身份验证 然

我正在开发一个组件,该组件需要通过https连接到没有客户端身份验证的用户,并在启用客户端身份验证的情况下与其他组件通信

我想用两个安全连接器启动组件,一个启用客户端身份验证,比如C1,另一个禁用,比如C2

我还想配置我的组件的哪个servlet将使用连接器C1运行,哪个servlet将在C2上运行


有什么解决办法吗?

我得到了这个问题的部分答案

您可以在servlet.xml配置中为tomcat添加多个连接器,一个在8443上启用了客户端身份验证,另一个在8444端口上没有启用客户端身份验证

然后,是否需要客户端身份验证将取决于与服务器通信的端口


但我仍然没有找到强制(并自动重定向)servlet在预配置的连接器上通信的方法。

可以通过两种方式实现拆分:

  • 将你的应用分成两场战争:一场是针对需要客户端身份验证的servlet,另一场是针对不需要客户端身份验证的servlet。然后在Tomcat中创建两个vhost,其中一个连接器和一个war文件与每个连接器关联
  • 编写应用程序调用
    request.getAttribute(“javax.servlet.request.X509Certificate”)
    ,并根据所需的路由决定是否将重定向(通过302 HTTP代码)发送回客户端