我的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 .
还有什么我想念的?
谢谢