跳到主要内容

HTTP

QWen Max 中英对照 HTTP Requests HTTP

所有基于 HTTP 的通信,包括静态资源,都应通过使用 TLS 进行保护。

作为一个框架,Spring Security 不处理 HTTP 连接,因此不直接提供对 HTTPS 的支持。但是,它确实提供了一些有助于使用 HTTPS 的功能。

重定向到 HTTPS

当客户端使用 HTTP 时,您可以配置 Spring Security 以在 ServletWebFlux 环境中重定向到 HTTPS。

严格传输安全

Spring Security 提供了对Strict Transport Security的支持,并且默认启用它。

代理服务器配置

在使用代理服务器时,确保正确配置应用程序非常重要。例如,许多应用程序都有一个负载均衡器,它通过将请求转发到位于 https://192.168.0.107 的应用服务器来响应对 https://example.com/ 的请求。如果没有正确的配置,应用服务器将无法知道负载均衡器的存在,并会将请求视为客户端直接请求了 https://192.168.0.107:8080

要解决这个问题,你可以使用 RFC 7239 来指定正在使用负载均衡器。为了让应用程序意识到这一点,你需要配置你的应用服务器以识别 X-Forwarded 头。例如,Tomcat 使用 RemoteIpValve,而 Jetty 使用 ForwardedRequestCustomizer。或者,Spring 用户可以使用 ForwardedHeaderFilter 与 Servlet 堆栈配合使用,或使用 ForwardedHeaderTransformer 与 Reactive 堆栈配合使用。

Spring Boot 用户可以使用 server.forward-headers-strategy 属性来配置应用程序。有关详细信息,请参阅 Spring Boot 文档