HTTP

所有基于 HTTP 的通信,包括静态资源,都应通过使用 TLS进行保护。spring-doc.cadn.net.cn

作为一个框架,Spring Security 不处理 HTTP 连接,因此不直接提供对 HTTPS 的支持。 然而,它确实提供了多项有助于使用 HTTPS 的功能。spring-doc.cadn.net.cn

重定向到 HTTPS

当客户端使用 HTTP 时,您可以配置 Spring Security,在 ServletWebFlux 环境中均重定向到 HTTPS。spring-doc.cadn.net.cn

HTTP 严格传输安全

Spring Security 提供对严格传输安全(Strict Transport Security)的支持,并默认启用该功能。spring-doc.cadn.net.cn

代理服务器配置

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

要解决此问题,您可以使用 RFC 7239 来指定正在使用负载均衡器。 为了让应用程序感知这一点,您需要配置应用服务器以识别 X-Forwarded 头部信息。 例如,Tomcat 使用 RemoteIpValve,而 Jetty 使用 ForwardedRequestCustomizer。 或者,Spring 用户可以在 Servlet 堆栈中使用 ForwardedHeaderFilter,或在响应式堆栈中使用 ForwardedHeaderTransformerspring-doc.cadn.net.cn

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