gpt4 book ai didi

java - 退出 ssl session

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:05 27 4
gpt4 key购买 nike

我正在尝试关闭 SSL 连接,以防有人想在使用客户端证书作为身份验证方法的网页上使用另一个证书。我知道如何结束 session ,坦克。我不知道的是,如何使 SSLSession 无效。显然有一个,我可以用 request.getAttribute("javax.servlet.request.ssl_session") 得到它的 id而且显然做 session.invalidate() 还不够,为什么?因为我在 logout.jsp 中有它重定向到我的 index.jsp。现在如果 SSL 连接已经失效,我应该在通过我的 logout.jsp 后,要求从我的浏览器证书中选择一个证书,我不是我仍然登录,我什至在我的注销 jsp 中有一个 request.setHeader("connection", "close"),也无济于事(我读过标题的内容可能更多地被解释为浏览器的指南而不必关闭所有连接)。在 tomcat7 中,有可能使用 SSLSessionManager 使 SSLSession 无效,所以我猜测,tomcat6 也必须有类似的东西。

所以整体的工作流程是

  1. index.jsp 的第一次点击
  2. 我被要求选择一个浏览器证书
  3. 我使用浏览器证书登录
  4. 我点击注销按钮,它向 logout.jsp 发出 ajax 请求
  5. 在 logout.jsp 中,我使正常的 HTTPSession 无效并将连接 header 设置为“关闭”

=> 这里缺少一些使 SSLSession 无效

  1. 如果 logout-ajax 请求成功,我将被带到 index.jsp(现在再次从第 1 点开始)只是我第二次没有被要求获得证书,这正是我想要实现的......在你问之前:我不想为此切换到 tomcat7但需要在 tomcat-6.0.32 中完成

非常感谢任何帮助

最佳答案

您必须掌握 Tomcat 用来创建 SSLServerSocketSSLContext。从那里你可以去

byte[] sessionID = (byte[])request.getAttribute("javax.servlet.request.ssl_session"); 
SSLSession session = sslContext.getServerSessionContext().getSession(sessionID);
session.invalidate();

但我不认为这是可行的:至少我不知道您如何从 Tomcat 获取 SSLContext

关于java - 退出 ssl session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30230277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com