使用POST进行身份验证时,Spring Security用户名为空,但可以使用PUT和GET

时间:2019-04-03 13:49:08

标签: spring-boot http spring-security postman

场景: 我用Spring安全性实现了基本身份验证。我生成了表单登录名和http基本身份验证。因此,当我想发送新数据(在Requestbody中为JSON文件)时,我只能使用Put和GEt,而不能使用Post。

错误: 当我使用Post Method(我正在与邮递员进行测试)时,loadUserByUsername(String username)中的用户名始终为空。当我使用Get或Put进行相同的呼叫时,用户名就是它的原意。

代码:

我不太确定哪些代码部分会有所帮助,因为一切似乎都在幕后发生。所以我希望SpringSecurityConfic可以提供帮助

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable();
    http.authorizeRequests().antMatchers("/**").permitAll().anyRequest().authenticated().and().httpBasic().authenticationEntryPoint(entryPoint);
    http.addFilterAt(new CustomBasicAuthenticationFilter(authenticationManagerBean()), BasicAuthenticationFilter.class);
    http.formLogin().loginPage("/login").permitAll().failureUrl("/login").successHandler(new RoleBasedAuthenticationSuccessHandler());
    http.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/login").invalidateHttpSession(true).deleteCookies("JSESSIONID").permitAll();
}

在我的SpringSecurotyConfiguration文件中,我具有http.csrf()。disable(),但仍然无法正常工作。

当我想使用POST时,我需要注意的任何事情。

0 个答案:

没有答案