多个Https Tomcat连接器需要客户端授权而不需要

时间:2012-10-18 05:07:38

标签: tomcat web-applications https webserver authentication

我正在开发一个组件,需要通过https连接到用户而无需客户端身份验证,并与启用了客户端身份验证的其他组件通信。

我想用两个安全连接器启动组件,一个用客户端auth启用说C1,另一个用禁用说C2。

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

有没有解决办法呢?

2 个答案:

答案 0 :(得分:0)

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

您可以在servlet.xml配置中为tomcat添加多个连接器,其中一个启用了客户端身份验证,例如8443,另一个未启用客户端身份验证,请说明在端口8444上。

然后,您是否希望客户端验证取决于您与服务器通信的端口。

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

答案 1 :(得分:0)

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

  1. 将您的应用分成两个战争:一个用于需要使用客户端身份验证服务的servlet,另一个用于那些不需要服务器的服务器。然后在Tomcat中创建两个vhost,其中一个连接器和一个war文件关联。
  2. 编写您的应用以致电request.getAttribute("javax.servlet.request.X509Certificate")并决定是否将重定向(通过302 HTTP代码)发送回客户端,具体取决于您所需的路由。