首頁 >web前端 >js教程 >如何使用 Spring Security 在 Spring Boot 應用程式中正確設定 CORS?

如何使用 Spring Security 在 Spring Boot 應用程式中正確設定 CORS?

Barbara Streisand
Barbara Streisand原創
2024-12-01 12:33:14422瀏覽

How to Properly Configure CORS in a Spring Boot Application with Spring Security?

在Spring Boot Spring Security 應用程式中設定CORS

問題

將CORS 支援整合到使用Spring Security 配置的Spring Boot 應用程式中可能會導致意外CORS 相關問題。具體來說,當使用 AngularJS 或 JavaScript XMLHttpRequests 時,驗證失敗時可能會遇到「0」或空響應正文等狀態碼,從而阻礙前端正確的錯誤處理。

解決方案

解決此問題問題,在 Spring Security 中明確啟用 CORS 支援:

  1. 啟用 CORS 支援在 Spring Security中:

    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.cors().and()... // Add additional security configuration here
        }
    }
  2. 利用CORS 全域設定(可選):

    定義一個CorsConfigurationSourceSource bean:

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
        return source;
    }
這個配置利用Spring MVC 的 CORS 支援並解決先前基於過濾器的方法。更多詳細資訊可以在 Spring Security CORS 文件中找到。

附加說明

    當 Spring Security 在驗證過程中重新導向或無法新增 CORS 標頭時,就會出現此問題。
  • 啟用 Spring Security CORS 支援允許框架利用 Spring MVC 的 CORS配置。
  • 啟用 Spring Security CORS 支援時,支援控制器層級的 @CrossOrigin 註解。
  • 如果驗證失敗,回應將包含適當的狀態碼和正文,以便於正確處理錯誤前端。

以上是如何使用 Spring Security 在 Spring Boot 應用程式中正確設定 CORS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn