Na implementação em nenhum momento indicamos qual atributo contém a senha como o Spring soube comparar?
Pergunta adicional: em uma API Rest do mundo real os dados de login provavelmente vai vir via JSON não através do formLogin como apresentado. Nessa situação como faria para usar o JSON para passar para o Serviço de autenticação do usuário