HTTP
所有基於 HTTP 的通訊都應使用 TLS 保護。
本節涵蓋關於使用 WebFlux 特定功能的詳細資訊,這些功能有助於 HTTPS 的使用。
重新導向至 HTTPS
如果用戶端使用 HTTP 而非 HTTPS 發出請求,您可以設定 Spring Security 重新導向至 HTTPS。
以下 Java 組態會將所有 HTTP 請求重新導向至 HTTPS
重新導向至 HTTPS
-
Java
-
Kotlin
@Bean
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http
// ...
.redirectToHttps(withDefaults());
return http.build();
}
@Bean
fun springSecurityFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
return http {
// ...
redirectToHttps { }
}
}
您可以將此組態包裝在 if
語句中,使其僅在生產環境中啟用。或者,您可以透過尋找僅在生產環境中發生的請求的屬性來啟用它。例如,如果生產環境新增了一個名為 X-Forwarded-Proto
的標頭,您應該使用以下 Java 組態
當 X-Forwarded 時重新導向至 HTTPS
-
Java
-
Kotlin
@Bean
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http
// ...
.redirectToHttps(redirect -> redirect
.httpsRedirectWhen(e -> e.getRequest().getHeaders().containsKey("X-Forwarded-Proto"))
);
return http.build();
}
@Bean
fun springSecurityFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
return http {
// ...
redirectToHttps {
httpsRedirectWhen {
it.request.headers.containsKey("X-Forwarded-Proto")
}
}
}
}
嚴格傳輸安全
Spring Security 提供了對 嚴格傳輸安全 的支援,並預設啟用它。
Proxy 伺服器組態
Spring Security 與 Proxy 伺服器整合。