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支援嚴格傳輸安全並預設啟用它。

代理伺服器配置

Spring Security與代理伺服器整合

© . This site is unofficial and not affiliated with VMware.