https://github.com/alissonwenceslau/bootcamp-spring-validation-and-security-challenge
Validation and security system implement
https://github.com/alissonwenceslau/bootcamp-spring-validation-and-security-challenge
authorization-server beans boilerplate jpa resource-server security-tools spring-boot spring-framework user-details validation
Last synced: 3 months ago
JSON representation
Validation and security system implement
- Host: GitHub
- URL: https://github.com/alissonwenceslau/bootcamp-spring-validation-and-security-challenge
- Owner: AlissonWenceslau
- Created: 2023-06-10T17:29:23.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-14T02:53:55.000Z (over 2 years ago)
- Last Synced: 2025-03-15T15:12:09.744Z (7 months ago)
- Topics: authorization-server, beans, boilerplate, jpa, resource-server, security-tools, spring-boot, spring-framework, user-details, validation
- Language: Java
- Homepage:
- Size: 539 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Desafio#3 bootcamp spring 3.0

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.## Validações de City:
● Nome não pode ser vazio
## Validações de Event:
- Nome não pode ser vazio
- Data não pode ser passada
- Cidade não pode ser nula## **Técnologias empregadas**
- Spring Boot
- Spring Data
- Spring Web
- H2 Database
- Spring Validation
- Spring Security## Configutação de ambiente **postman**

## Endpoint postman
### Login
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:


### All cities
Os enpoints correspondentes ao método GET, estão definidos como público, ou seja, todos podem acessar.

### Events paged

### New city [POST]
Somente usuários com perfil ADMIN poderão cadastrar uma nova cidade

### New event [POST]
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.