Здравствуйте!
Я например, когда реализую это на Spring, то на стадии авторизации выбираю активных пользователей с нужными правами и нахожу юзера по email.
Код, который я использую для Spring
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.passwordEncoder(passwordEncoder())
.usersByUsernameQuery("SELECT user_email, user_password, user_active FROM users WHERE user_email=?")
.authoritiesByUsernameQuery("SELECT u.user_email, ur.roles FROM users u INNER JOIN user_roles ur ON u.user_id=ur.user_id WHERE user_email=?");
}