0%
Proteção de APIs com Spring Security

Segurança

Autenticar sem sessão, autorizar com precisão e não copiar código obsoleto.

15-20 min

Proteção de APIs com Spring Security

Até aqui, a biblio-api aceita qualquer pessoa. Qualquer um pode criar um livro, excluir outro ou ler o catálogo inteiro. Em uma máquina de desenvolvimento isso é confortável; já no primeiro deploy, é uma porta aberta.

Proteger uma API levanta duas perguntas distintas, e confundi-las é a primeira fonte de erros. Quem é você? é uma questão de autenticação, e a resposta em caso de falha é 401 Unauthorized. Você tem permissão para fazer isto? é uma questão de autorização, e a resposta em caso de falha é 403 Forbidden. Um usuário corretamente autenticado que tenta excluir um livro sem ter o papel necessário deve receber um 403, e não um 401 — o segundo o faria acreditar que suas credenciais são inválidas e o levaria a se reconectar em loop.

Quem procura ajuda on-line sobre esse assunto enfrenta uma dificuldade particular. O Spring Security 6, incluído no Spring Boot 3, removeu o WebSecurityConfigurerAdapter. A classe não está depreciada: ela simplesmente não existe mais. No entanto, a maioria dos artigos, respostas e exemplos indexados nos últimos dez anos se baseia nela, e o leitor que os copia obtém um erro de compilação que nenhum desses artigos explica. A configuração agora é declarada por meio de beans, em particular um bean SecurityFilterChain.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!