Java loadUserByUsername获取空用户名

Java loadUserByUsername获取空用户名,java,spring-boot,spring-security,axios,Java,Spring Boot,Spring Security,Axios,我使用的是SpringBoot2.1.9.RELEASE 弹簧启动启动器安全2.1.8.1版本 但是当我使用loadByUsername函数时,我会得到一个空用户名 我的登录页面 this.$axios({ method: 'post', url: "api/login", data:this.loginForm, headers:{'Content-Type': 'applica

我使用的是SpringBoot2.1.9.RELEASE 弹簧启动启动器安全2.1.8.1版本 但是当我使用loadByUsername函数时,我会得到一个空用户名

我的登录页面

          this.$axios({
            method: 'post',
            url: "api/login",
            data:this.loginForm,
            headers:{'Content-Type': 'application/x-www-form-urlencoded'}}
          )
我的安全配置

@配置
公共类WebSecurityConfig扩展了WebSecurityConfigureAdapter{
@自动连线
UserServiceImpl UserServiceImpl;
@凌驾
受保护的无效配置(AuthenticationManagerBuilder auth)引发异常{
auth.userDetailsService(userServiceImpl).passwordEncoder(新的BCryptPasswordEncoder(){
@凌驾
公共字符串编码(CharSequence CharSequence){
返回DigestUtils.md5DigestAsHex(charSequence.toString().getBytes());
}
@凌驾
公共布尔匹配(CharSequence CharSequence,字符串s){
返回s.equals(DigestUtils.md5DigestAsHex(charSequence.toString().getBytes());
}
});
}
@凌驾
受保护的无效配置(HttpSecurity http)引发异常{
http.authorizeRequests()
.antMatchers(“/admin/category/all”).authenticated()
.antMatchers(“/admin/**,”/reg”).hasRole(“超级管理员")
.anyRequest().anonymous()
.and().formLogin().loginPage(“/api/login”)
.usernameParameter(“用户名”)
.passwordParameter(“密码”)
.permitAll()
.and().logout().permitAll().and().csrf().disable().exceptionHandling();
}
@凌驾
public void configure(WebSecurity web)引发异常{
忽略();
}
}
我的loadUserByUserName方法

@覆盖
public UserDetails loadUserByUsername(字符串用户名)引发UsernameNotFoundException{
Optional user=Optional.ofNullable(userMapper.loadUserByUsername(username));
User user1=User.orElse(new User());
List roles=rolesMapper.getRolesByUid(user1.getId());
user1.setRoles(角色);
返回user1;
}

方法loadUserByUsername()始终为空用户


如果我在url.loadUserByUserName()中加入参数,则可以获取用户名;

您的用户名参数作为空字符串传递给该方法。我认为它应该是“liuzheng”“。检查在该点选中之前是否对username参数进行了任何修改,这不是对参数表的修改,但我发现如果我在url中加入参数表,loadUserByUserName可以获得正确的用户名您发送的不是表单而是JSON。您发送的是错误的。或者您使用了错误的筛选器。