我正在开发一个组件,该组件需要在没有客户端身份验证的情况下通过 https 连接到用户,并在启用客户端身份验证的情况下与其他组件通信。
我想用两个安全连接器启动组件,一个启用客户端身份验证说 C1,一个禁用说 C2。
我还想配置我的组件的哪个 servlet 将使用连接器 C1 运行,哪个将在 C2 上运行。
有什么解决办法吗?
我正在开发一个组件,该组件需要在没有客户端身份验证的情况下通过 https 连接到用户,并在启用客户端身份验证的情况下与其他组件通信。
我想用两个安全连接器启动组件,一个启用客户端身份验证说 C1,一个禁用说 C2。
我还想配置我的组件的哪个 servlet 将使用连接器 C1 运行,哪个将在 C2 上运行。
有什么解决办法吗?
我得到了这个问题的部分答案
您可以在 servlet.xml 配置中为 tomcat 添加多个连接器,一个在 8443 上启用客户端身份验证,一个在端口 8444 上未启用客户端身份验证。
那么您是否需要客户端身份验证将取决于您与服务器通信的端口。
但是我仍然没有找到强制(并自动重定向)servlet 在预配置连接器上进行通信的方法。
您可以通过两种方式实现拆分:
request.getAttribute("javax.servlet.request.X509Certificate")
并根据所需的路由决定是否将重定向(通过 302 HTTP 代码)发送回客户端。