UserDetails explained in several fields:
// return to verify the user's password, then can not return NULL
String getPassword();
String getUsername();
// account has expired, expired can not be verifiedboolean isAccountNonExpired();
// Specify whether the user is locked or unlocked, locked users can not authenticateboolean isAccountNonLocked();
// indicate whether the user's credentials have expired (password), expired credentials to prevent certificationboolean isCredentialsNonExpired();
// if disabled, disabled users can not authenticateboolean isEnabled ();