Olá Gabriel!
A sua dúvida é bastante comum entre desenvolvedores, especialmente quando estamos lidando com bibliotecas e frameworks que têm muitas camadas e abstrações, como é o caso do Spring Security.
O método authentication.getPrincipal()
retorna um Object
que, dependendo da implementação do seu sistema de autenticação, pode ser convertido para uma instância da sua classe Usuario
. Isso acontece porque o Principal
é uma interface que representa o usuário autenticado, e a implementação concreta pode variar.
Sobre a sua pergunta se é esperado que você, como desenvolvedor, decore tudo isso: não é necessário decorar todos os detalhes de implementação das bibliotecas e APIs que você usa. É bastante comum, e até esperado, que você consulte a documentação frequentemente. Isso faz parte do processo de desenvolvimento e é uma prática saudável, pois garante que você está utilizando as ferramentas de forma correta e eficiente.
Por exemplo, ao trabalhar com o Spring Security, é útil ter uma compreensão geral de como ele funciona, mas para detalhes específicos, como o uso de authentication.getPrincipal()
, consultar a documentação ou buscar exemplos na internet é uma abordagem prática e eficiente.
Com o tempo você vai acabar memorizando coisas que são comuns e repetitivas em projetos, de uma maneira natural.
Espero ter ajudado e bons estudos!