Este é um desafio backend proposto pela DevSuperior referente ao capítulo 03.Validação e Segurança, no qual foi implementado um sistema de login usando JWT bem como configurações de acesso a endpoints para determinados tipos de perfis (Admin & Client)
Este é um sistema de eventos e cidades com uma relação N-1 entre eles:
Neste sistema, somente as rotas de leitura (GET) de eventos e cidades são públicas (não precisa de login). Usuários CLIENT podem também inserir (POST) novos eventos. Os demais acessos são permitidos apenas a usuários ADMIN.
● Nome não pode ser vazio
- Nome não pode ser vazio
- Data não pode ser passada
- Cidade não pode ser nula
- Spring Boot
- Spring Data
- Spring Web
- H2 Database
- Spring Validation
- Spring Security
Configurando credênciais da aplicação:
Código para o postman pegar token automático com base na variável de ambiente configurada:
Efetuando login na aplicação após as configurações
Cada endpoint do tipo POST precisa receber a configuração de BearerToken para buscar o token gerado após o envio da requisição do Login, exemplo:
Os enpoints correspondentes ao método GET, estão definidos como público, ou seja, todos podem acessar.
Somente usuários com perfil ADMIN poderão cadastrar uma nova cidade
Tanto usuários com perfil de ADMIN & CLIENTE poderão cadastrar um novo evento
O sistema já está preparado para tratamento de exceções:
Neste exemplo acima, o sistema está barrando o cadastro de novas cidades caso o usuário passe o nome em branco.