开发者社区> 问答> 正文

loadUserByUsername获取空用户名

我正在使用spring boot 2.1.9.RELEASE spring-boot-starter-security 2.1.8.RELEASE但是当我使用loadByUsername函数时,我得到一个空用户名

我的登录页面

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

我的安全性配置

@Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired UserServiceImpl userServiceImpl;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception{
    auth.userDetailsService(userServiceImpl).passwordEncoder(new BCryptPasswordEncoder() {
        @Override
        public String encode(CharSequence charSequence) {
            return DigestUtils.md5DigestAsHex(charSequence.toString().getBytes());
        }
        @Override
        public boolean matches(CharSequence charSequence, String s) {
            return s.equals(DigestUtils.md5DigestAsHex(charSequence.toString().getBytes()));
        }
    });
}

@Override
protected void configure(HttpSecurity http) throws Exception{
    http.authorizeRequests()
            .antMatchers("/admin/category/all").authenticated()
            .antMatchers("/admin/**","/reg").hasRole("超级管理员")
            .anyRequest().anonymous()
            .and().formLogin().loginPage("/api/login")
            .usernameParameter("username")
            .passwordParameter("password")
            .permitAll()
            .and().logout().permitAll().and().csrf().disable().exceptionHandling();

}

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/blogimg/**","/index.html","/static/**");
}

} 我的loadUserByUserName方法

@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { Optional user = Optional.ofNullable(userMapper.loadUserByUsername(username)); User user1 = user.orElse(new User()); List roles = rolesMapper.getRolesByUid(user1.getId()); user1.setRoles(roles); return user1; } 方法loadUserByUsername()始终为空用户;

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

展开
收起
小六码奴 2019-10-14 16:51:31 5668 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载