Duvida com spring security

Gostaria de saber qual a função e onde um UserDetailsService e um AuthenticationProvider entram no processo de authenticação de um usuário. Pois inicialmente pensava que primeiro ele chamava o AuthenticationProvider para verificar se o usuário existe depois o UserDetailsService para carregar os detalhes do usuário. Entao gostaria de saber como funciona de verdade!

agradeço!