{"id":21285166,"url":"https://github.com/alissonwenceslau/bootcamp-spring-validation-and-security-challenge","last_synced_at":"2026-05-03T23:35:38.537Z","repository":{"id":175140451,"uuid":"651979481","full_name":"AlissonWenceslau/bootcamp-spring-validation-and-security-challenge","owner":"AlissonWenceslau","description":"Validation and security system implement","archived":false,"fork":false,"pushed_at":"2023-06-14T02:53:55.000Z","size":552,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-23T02:45:26.266Z","etag":null,"topics":["authorization-server","beans","boilerplate","jpa","resource-server","security-tools","spring-boot","spring-framework","user-details","validation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlissonWenceslau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-10T17:29:23.000Z","updated_at":"2023-06-30T08:42:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"f1b8cd82-ed27-472a-a6de-49e329421c08","html_url":"https://github.com/AlissonWenceslau/bootcamp-spring-validation-and-security-challenge","commit_stats":null,"previous_names":["alissonwenceslau/bootcamp-spring-validation-and-security-challenge"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlissonWenceslau/bootcamp-spring-validation-and-security-challenge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlissonWenceslau%2Fbootcamp-spring-validation-and-security-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlissonWenceslau%2Fbootcamp-spring-validation-and-security-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlissonWenceslau%2Fbootcamp-spring-validation-and-security-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlissonWenceslau%2Fbootcamp-spring-validation-and-security-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlissonWenceslau","download_url":"https://codeload.github.com/AlissonWenceslau/bootcamp-spring-validation-and-security-challenge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlissonWenceslau%2Fbootcamp-spring-validation-and-security-challenge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32589262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authorization-server","beans","boilerplate","jpa","resource-server","security-tools","spring-boot","spring-framework","user-details","validation"],"created_at":"2024-11-21T11:18:33.364Z","updated_at":"2026-05-03T23:35:38.519Z","avatar_url":"https://github.com/AlissonWenceslau.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio#3 bootcamp spring 3.0\n\n![Untitled](assets/Untitled.png)\n\nEste é 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 \u0026 Client)\n\nEste é um sistema de eventos e cidades com uma relação N-1 entre eles:\n\n![Untitled](assets/Untitled%201.png)\n\nNeste sistema, somente as rotas de leitura (GET) de eventos e cidades são públicas (não\nprecisa de login). Usuários CLIENT podem também inserir (POST) novos eventos. Os demais\nacessos são permitidos apenas a usuários ADMIN.\n\n## Validações de City:\n\n● Nome não pode ser vazio\n\n## Validações de Event:\n\n- Nome não pode ser vazio\n- Data não pode ser passada\n- Cidade não pode ser nula\n\n## **Técnologias empregadas**\n\n- Spring Boot\n- Spring Data\n- Spring Web\n- H2 Database\n- Spring Validation\n- Spring Security\n\n## Configutação de ambiente **postman**\n\n![Untitled](assets/Untitled%202.png)\n\n## Endpoint postman\n\n### Login\n\nConfigurando credênciais da aplicação:\n\n![Untitled](assets/Untitled%203.png)\n\nCódigo para o postman pegar token automático com base na variável de ambiente configurada:\n\n![Untitled](assets/Untitled%204.png)\n\nEfetuando login na aplicação após as configurações \n\n![Untitled](assets/Untitled%205.png)\n\nCada 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: \n\n![Untitled](assets/Untitled%206.png)\n\n![Untitled](assets/Untitled%207.png)\n\n### All cities\n\nOs enpoints correspondentes ao método GET, estão definidos como público, ou seja, todos podem acessar.\n\n![Untitled](assets/Untitled%208.png)\n\n### Events paged\n\n![Untitled](assets/Untitled%209.png)\n\n### New city [POST]\n\nSomente usuários com perfil ADMIN poderão cadastrar uma nova cidade\n\n![Untitled](assets/Untitled%2010.png)\n\n### New event [POST]\n\nTanto usuários com perfil de ADMIN \u0026 CLIENTE poderão cadastrar um novo evento\n\n![Untitled](assets/Untitled%2011.png)\n\nO sistema já está preparado para tratamento de exceções:\n\n![Untitled](assets/Untitled%2012.png)\n\nNeste exemplo acima, o sistema está barrando o cadastro de novas cidades caso o usuário passe o nome em branco.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falissonwenceslau%2Fbootcamp-spring-validation-and-security-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falissonwenceslau%2Fbootcamp-spring-validation-and-security-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falissonwenceslau%2Fbootcamp-spring-validation-and-security-challenge/lists"}