Я использую весеннюю загрузку 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;
}
методloadUserByUsername () всегда пустой пользователь;
, если я присоединяюсь к параметрам в url.loadUserByUserName () может получить имя пользователя;