Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas sobre classe SecurityConfiguration

Olá! Estou adorando o curso, porém estou com uma dúvida mais sobre estrutura e funcionamento de projeto, nada de código. Gostaria de confirmar se o que entendi está certo. A classe SecurityConfiguration que está no pacote de infra está com as anotações @Configuration e @EnableWebSecurity. Então essa classe está servindo para configurarmos como será a configuração de segurança do nosso código, como usar o bcript, desativar a proteção cfsr, etc. Certo? E cada método muda cada coisa da nossa configuração?

Isso foi o que eu entendi. Se estiver certo, queria só entender como então a classe tratador de erros configura o funcionamento do retorno dos erros sendo que ela não tem o @Configuration, ela têm apenas o @RestControllerAdvice.

Minha dúvida é mais para saber como o Spring sabe que aquilo é de configuração, e se realmente a classe serve para sobrescrever padrões do Spring e cada método muda uma coisa. Ou se entendi tudo errado.

Agradeço desde já!

1 resposta
solução!

Olá, Guilherme! Fico feliz em saber que está gostando do curso e que está se dedicando a entender a estrutura e funcionamento do projeto.

Sua compreensão sobre a classe SecurityConfiguration está correta. A anotação @Configuration indica que essa classe é responsável por configurar aspectos específicos do seu projeto. No caso da classe SecurityConfiguration, ela está sendo usada para configurar a segurança do código, como o uso do bcrypt e a desativação da proteção CSRF.

Cada método dentro da classe SecurityConfiguration pode modificar diferentes aspectos da configuração de segurança. Por exemplo, você pode ter um método para configurar a autenticação dos usuários e outro para configurar as permissões de acesso aos endpoints da API. Cada método é responsável por uma parte específica da configuração.

Quanto à classe tratador de erros, ela não possui a anotação @Configuration porque é um tipo de classe de configurações específica, sendo que o Spring automaticamente também a encontra no projeto. Na teoria, ela também é uma classe de configurações, mas ao usar a anotação @RestControllerAdvice, não é necessário adicionar também o @Configuration.

Espero ter esclarecido suas dúvidas! Bons estudos!