customUserDetailsService (thanks to Tibor)