Authentication 是否可以从servelt筛选器中断SSL会话?

Authentication 是否可以从servelt筛选器中断SSL会话?,authentication,ssl,servlet-filters,Authentication,Ssl,Servlet Filters,我正在servlet过滤器中实现证书身份验证。我使用httpRequest.getAttribute(“javax.servlet.request.X509Certificate”)API获取客户端证书。当用户启动浏览器并首次访问web服务器时,底层SSL请求客户端证书,浏览器提示选择证书。但是,在用户注销并且我已使HTTP会话无效后,如果用户没有关闭浏览器并返回Web服务器,则底层SSL不会触发浏览器再次提示选择证书。我认为这是因为用户在HTTP层从Web服务器注销后SSL会话没有被中断。我的

我正在servlet过滤器中实现证书身份验证。我使用
httpRequest.getAttribute(“javax.servlet.request.X509Certificate”)
API获取客户端证书。当用户启动浏览器并首次访问web服务器时,底层SSL请求客户端证书,浏览器提示选择证书。但是,在用户注销并且我已使HTTP会话无效后,如果用户没有关闭浏览器并返回Web服务器,则底层SSL不会触发浏览器再次提示选择证书。我认为这是因为用户在HTTP层从Web服务器注销后SSL会话没有被中断。我的问题是,有没有一种方法可以使servlet中的底层SSL会话无效?一个更一般的问题是,如何让浏览器在用户从Web服务器注销后重新提示选择证书

谢谢, 帮派

我的问题是,有没有一种方法可以使servlet中的底层SSL会话无效

您必须编写一个Tomcat阀,并且可能还要修改一些Tomcat源代码。我已经深入了解了Tomcat HTTPS/身份验证源代码的好几层,但我还没有看到一个钩子可以为您提供SSLSession

一个更一般的问题是,如何让浏览器在用户从Web服务器注销后重新提示选择证书

如果您可以使SSL会话无效,则可能会或可能不会产生这种效果。我认为这是特定于浏览器的。

我使用了与测试身份验证过滤器相同的浏览器(IE9)来访问需要客户端证书进行身份验证的远程网站。当我注销该网站并重新登录时,浏览器会重新提示输入证书。因此我相信它可以从服务器端实现。也许该网站的实现是在SSL层。