loadUserByUsername получить пустое имя пользователя - PullRequest
0 голосов
/ 14 октября 2019

Я использую весеннюю загрузку 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'}}
          )

My Security config

@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> user = Optional.ofNullable(userMapper.loadUserByUsername(username));
        User user1 =  user.orElse(new User());
        List<Role> roles = rolesMapper.getRolesByUid(user1.getId());
        user1.setRoles(roles);
        return user1;
    }

enter image description here

enter image description here

методloadUserByUsername () всегда пустой пользователь;

, если я присоединяюсь к параметрам в url.loadUserByUserName () может получить имя пользователя;

...