abc*_*abc 0 java spring-security
我使用Spring Security,在Spring Security中是否可以使用电子邮件而不是用户名登录?
小智 8
您需要在登录表单中输入“电子邮件”参数
<input type="email" name="email">
Run Code Online (Sandbox Code Playgroud)
然后,让您的自定义WebSecurityConfigurerAdapter知道“电子邮件”现在是主要参数
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/login")
.usernameParameter("email")
.permitAll()
.and()
.logout()
.permitAll();
}
Run Code Online (Sandbox Code Playgroud)
最后,在您的UserDetailsService实现中覆盖loadUserByUsername()
@Override
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
User user = userRepo.findByEmail(email);
if (user == null) {
throw new UsernameNotFoundException("Not found!");
}
return user;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |