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