簡體   English   中英

Spring Boot Security和Auth0-無法禁用CSRF

[英]Spring Boot Security and Auth0 - Cannot disable CSRF

我正在構建一個RESTful Spring Boot和React / Alt應用程序。 我想添加spring安全性以確保對API不會有未經身份驗證的請求。

我正在使用Auth0作為身份驗證提供程序,因此用戶可以登錄應用程序,更具體地說是spring-security-auth0庫,以處理服務器端安全方面的事情。 https://github.com/auth0/spring-security-auth0

遵循有關Auth0的基本教程之后,我已經在我的spring應用程序中配置了安全配置,因此,如果沒有JSON Web令牌,對API的請求將不起作用。 這可行,但是控制器中有一些不需要的端點(需要POST的端點)。 我在Chrome devtools中收到此錯誤-

Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'

我知道沒有CSRF標頭,這就是為什么它不起作用的原因。 但是我感到困惑的主要原因是因為我禁用了CSRF,而且這種情況仍然會發生。 按照spring docs的指示,我已經做到了-

@Configuration
@EnableWebSecurity
@ComponentScan("com.auth0")
@ImportResource("classpath:auth0-security-context.xml")
@PropertySource("classpath:auth0.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
    }

在這種情況下,我不需要CSRF,因為該應用程序只能在開發環境中使用。 即使我完全禁用了CSRF,為什么仍會發生這種情況?

明確啟用了負責異常的CsrfFilter。 這可能有多種原因。 可以在某個地方配置WebSecurityConfigurerAdapter的另一個實例嗎?

您可以嘗試以下方法:

在“ http.csrf()。disable();”行中設置斷點 看看它是否真的執行過。

在WebSecurityConfigurerAdapter的構造函數中設置斷點,以查看是否創建了許多實例。

這應該向您顯示出了什么問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM