Fork me on GitHub

SpringBoot 中的登录验证

SpringBoot 中的登录验证

authoritiesByUsernameQuery(sql)
传入的sql 需要返回 用户名和 用户级别

源码中的默认sql

1
private String authoritiesByUsernameQuery = "select username,authority from authorities where username = ?";

usersByUsernameQuery(sql)
传入的sql 需要返回 用户名,密码,是否启动 enabled = 1 是默认启用
源码中的默认sql

1
"select username,password,enabled from users where username = ?";

另一种验证方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Autowired
AdminUserService adminUserService;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(buildUserDetailsService())
.passwordEncoder(new BCryptPasswordEncoder());
}

@Bean
UserDetailsService buildUserDetailsService() {
return username -> {
AdminUser account = adminUserService.selectByUsername(username);
User user = new User(account.getName(), account.getPasswd(),
true, true, true, true,
AuthorityUtils.createAuthorityList("USER"));
return user;
};
}