[英]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.