HTTP

本站(springdoc.cn)中的内容来源于 spring.io ,原始版权归属于 spring.io。由 springdoc.cn 进行翻译,整理。可供个人学习、研究,未经许可,不得进行任何转载、商用或与之相关的行为。 商标声明:Spring 是 Pivotal Software, Inc. 在美国以及其他国家的商标。

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

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

重定向到 HTTPS

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

Strict Transport Security

Spring Security提供了对 严格的传输安全(Strict Transport Security) 的支持,并默认启用了它。

代理服务器配置

当使用代理服务器时,重要的是确保你已经正确配置了你的应用程序。例如,许多应用程序有一个负载均衡器,它通过将请求转发到 https://192.168.1:8080 的应用服务器来响应对 https://example.com/ 的请求。如果没有正确的配置,应用服务器就不能知道负载均衡器的存在,并将请求当作是由客户端请求的 https://192.168.1:8080

为了解决这个问题,你可以使用 RFC 7239 来指定正在使用一个负载均衡器。为了使应用程序意识到这一点,你需要配置你的应用服务器,使其意识到`X-Forwarded` Header。例如,Tomcat使用 RemoteIpValve,Jetty使用 ForwardedRequestCustomizer。另外,Spring用户可以使用 ForwardedHeaderFilter

Spring Boot用户可以使用 server.use-forward-headers 属性来配置应用程序。更多细节请参见 Spring Boot文档