我正在使用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()中加入参数,则可以获取用户名;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。