我的Spring Boot应用程序的Firefox登录功能有一个奇怪的情况 .

我在WebSecurityConfigurerAdapter中的HttpSecurity配置了这样的登录:

.formLogin()
                .loginPage("/login")
                .loginProcessingUrl("/login")
                .usernameParameter("username")
                .passwordParameter("password")
                .defaultSuccessUrl("/")
                .failureUrl("/login?error")
                .permitAll()

我有一个login.html页面和一个GetMapping设置,用于在/ login endpoints 加载该页面的负载:

@GetMapping("/login")
public String get(Model model) {
    return "login";
}

没有PostMapping来处理POST

因此,登录流程对Chrome和Safari完全正常,但不适用于Firefox .

当我尝试登录FireFox时,它总是说不允许HTTP Post 405方法 .

现在,如果我将此添加到HttpSecurity以禁用CSRF

.and().csrf().disable();

然后Firefox将不会返回405,但会成功地重定向到“/”,但是没有正确登录用户,即:SecurityContextHolder.getContext() . getAuthentication() . isAuthenticated()为false .

还有什么我想念的?

谢谢