Spring Boot —使用CSRF令牌的发布请求会产生403错误

问题描述 投票:0回答:1

[我正在尝试在我的Spring Boot API中实现CSRF令牌安全性,以了解如何处理。

我关注了this tutorial (server side part),这是我的安全配置:

private static final String[] CSRF_IGNORE = {"/api/login"};


protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf()
                .ignoringAntMatchers(CSRF_IGNORE)
                .csrfTokenRepository(csrfTokenRepository())
                .and()
                .addFilterAfter(new CustomCsrfFilter(), CsrfFilter.class)
                .exceptionHandling()
                .authenticationEntryPoint(new Http403ForbiddenEntryPoint() {
                })
                .and()
                .authenticationProvider(getProvider())
                .formLogin()
                .loginProcessingUrl("/api/login")
                .successHandler(new AuthentificationLoginSuccessHandler())
                .failureHandler(new SimpleUrlAuthenticationFailureHandler())
                .and()
                .logout()
                .logoutUrl("/api/logout")
                .logoutSuccessHandler(new AuthentificationLogoutSuccessHandler())
                .invalidateHttpSession(true)
                .and()
                .authorizeRequests()
                .anyRequest().authenticated();
    }

其他与本教程中的相同。

我正在与邮递员进行测试。

当我在[[CSRF_IGNORE中添加所需的端点时,通过记录器/调试,我可以看到库存的令牌和cookie中的令牌是相同的,因为安全配置的<< CustomCsrfFilter.java]部分在使用.addFilterAfter(),但是当我从此CSRF_IGNORE中删除端点时,得到的是403,并且未使用CustomCsrfFilter.java中的记录器/调试,所以我在想不比较令牌。我想我错过了一些东西,我想了解。

我正在尝试在Spring Boot API中实现CSRF令牌安全性,以了解如何处理。我遵循了本教程(服务器端部分),这是我的安全配置:private static final ...
java spring-boot csrf csrf-token
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.