3
respostas

Autenticação

Já que agora, a classe AutenticacaoController que é responsável por fazer a autenticação, por que temos esse proximo método que faz a mesma coisa? só q na classe SecurityConfiguration :

protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(usuarioService).passwordEncoder(new BCryptPasswordEncoder()); }

3 respostas

Oi Victor,

Na verdade a classe AutenticacaoController não realiza a autenticação. Ela apenas dispara o processo de autenticação quando o seguinte método é invocado:

authManager.authenticate(dadosLogin);

Nessa linha anterior pedimos ao Spring que realize a autenticação, sendo que para ele fazer isso vai precisar saber como é o processo de autenticação da nossa API, que foi justamente configurado no método protected void configure(AuthenticationManagerBuilder auth).

Bons estudos!

em que parte do controller chama o metodo protected void configure(Authen... auth) ? Fiquei meio confuso. Pq nos 2 casos q disse acima, estão fazendo a mesma coisa. Pq você disse que o authManager.authenticate(dadosLogin) chama a classe Service, que chama o repository e verifica a autenticidade , mas no método protected void configure(AuthenticationManagerBuilder auth) ele também chama o service, q chama o Repository para autenticar. Então a mesma coisa está acontecendo 2 vezes.

No controller chamamos apenas esse método do Spring:

authManager.authenticate(dadosLogin);

Quando esse método é chamado o Spring verifica na classe SecurityConfigurations a configuração de autenticação:

protected void configure(AutehticationManagerBuilder auth) {
        auth.userDetailsService(autenticacaoService).passwordEncoder(new BCryptPasswordEncoder());
}

E com isso agora ele sabe que precisa chamar a classe AutenticacaoService para realizar a autenticação.

Ou seja, não é o controller que chama a service/repository para autenticação. O Controller chama o Spring, que se encarrega de descobrir nas configurações qual classe precisa chamar para efetuar a autenticação.