我有一个在 tomcat 上运行的 spring 应用程序,我设置了两个连接器 8080 和 8443。我使用 8443 进行身份验证,使用 8080 进行应用程序。认证后 JSESSIONID 添加了安全符号,因此它在 HTTP 中不可用。
如何在使用 HTTPS 进行身份验证时创建两种类型的身份验证,以便也对 HTTP 进行身份验证。我将身份验证设置为:
SecurityContextHolder.getContext().setAuthentication(authentication);
最佳答案
这应该开箱即用。设置的 session cookie 为 http 和 https 共享。检查 cookie 和 verify如果域、路径和协议(protocol)设置正确。您还应该验证您的 spring 安全配置。示例 here
此外,您真的应该只使用 https 而不是通过 http 提供任何内容 - 开销微不足道,同时提供了很大的安全优势。
关于spring - 从 HTTPS 切换到 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33833077/