HTTP

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

所有基于HTTP的通信都应该 使用TLS进行保护。

本节讨论了协助HTTPS使用的特定服务功能的细节。

重定向到 HTTPS

如果客户端使用HTTP而不是HTTPS发出请求,你可以配置Spring Security重定向到HTTPS。

例如,下面的Java或Kotlin配置将任何HTTP请求重定向到HTTPS。

Redirect to HTTPS
  • Java

  • Kotlin

@Configuration
@EnableWebSecurity
public class WebSecurityConfig {

	@Bean
	public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
		http
			// ...
			.requiresChannel(channel -> channel
				.anyRequest().requiresSecure()
			);
		return http.build();
	}
}
@Configuration
@EnableWebSecurity
class SecurityConfig {

    @Bean
    open fun filterChain(http: HttpSecurity): SecurityFilterChain {
        http {
            // ...
            requiresChannel {
                secure(AnyRequestMatcher.INSTANCE, "REQUIRES_SECURE_CHANNEL")
            }
        }
        return http.build()
    }
}

下面的XML配置将所有HTTP请求重定向到HTTPS

Redirect to HTTPS with XML Configuration
<http>
	<intercept-url pattern="/**" access="ROLE_USER" requires-channel="https"/>
...
</http>

Strict Transport Security

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

代理服务器的配置

Spring Security与 代理服务器整合