【发布时间】:2021-06-09 11:53:35
【问题描述】:
有UserDetail和LoginController。
UserDetail 从数据库中获取用户。
用户详情
public class UserDetail implements UserDetailsService {
private final
UserServiceJpa userServiceJpa;
public UserDetail(UserServiceJpa userServiceJpa) {
this.userServiceJpa = userServiceJpa;
}
@Override
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
// Get user
User user = userServiceJpa.findUserByEmail(email);
if (user == null){
throw new UsernameNotFoundException("There is no such user " + email);
}
return new org.springframework.security.core.userdetails.User(user.getEmail(),
user.getPassword(),
user.getEnabled(),
user.getAccount_non_expired(),
user.getCredentials_non_expired(),
user.getAccount_non_locked(),
getAuthorities());
}
private Collection<? extends GrantedAuthority> getAuthorities(){
List<SimpleGrantedAuthority> authList = new ArrayList<>();
authList.add(new SimpleGrantedAuthority("ROLE_USER"));
authList.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
return authList;
}
}
登录控制器
@Controller
public class LoginController {
@GetMapping(value = "/login")
public String login () {
return "/login";
}
}
问题!在LoginController中如何获取到UserDetail接收到的这个用户?
我这样做是为了不重新连接到数据库。因此,我想知道如果用户被阻止 - enabled、accountNonExpired、credentialsNonExpired、accountNonLocked,他是如何被阻止的>
【问题讨论】:
标签: java spring spring-mvc spring-security spring-data