gpt4 book ai didi

tomcat - 具有 secret 传输保证的 URL 仍然可以使用 HTTP 访问

转载 作者:行者123 更新时间:2023-11-28 21:56:40 24 4
gpt4 key购买 nike

我做了以下步骤:
1) 通过keytool创建自签名证书
2) 在server.xml中配置8443端口连接器
3) 检查 localhost:8080 和 localhost:8433 是否都可以访问
4) 将以下安全约束添加到我的 web.xml

<security-constraint>
<web-resource-collection>
<web-resource-name>securedapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

当我转到 http://localhost:8080/MyApp/ 时,没有重定向到 https://localhost:8443/MyApp/。据我了解,对于传输保证为 secret 的 URL 使用 HTTP 的请求应该使用 HTTPS 自动重定向到相同的 URL。

但是,我的应用仍然可以访问,并且可以同时使用 HTTP 和 HTTPS。我正在使用 Tomcat 6.0.36。我错过了什么?

提前致谢。

最佳答案

回答我自己的问题。

我发现此行为是由 HTTP 连接器的 secure 标志引起的。我之前出于测试目的设置它,然后忘记了。

当 HTTP 连接器具有 secure="true" 并且浏览器中没有现有的 JSESSIONID cookie 时:

  • 对于 HTTP 请求,JSESSIONID 存储在一个 URL 中
  • 对于 HTTPS 请求,JSESSIONID 存储在 cookie 中
  • CONFIDENTIAL 传输保证不会导致重定向到使用 HTTPS 的相同 URL

当 HTTP 连接器有 secure="false" 时:

  • 如预期的那样,使用 HTTP 请求其传输保证的 URL是 CONFIDENTIAL 会自动重定向到相同的 URL 使用HTTPS

关于tomcat - 具有 secret 传输保证的 URL 仍然可以使用 HTTP 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932430/

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