Skip to content

Ivictors/Spring-Security-Autentica-o-JWT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Spring Security - Autenticação JWT

Este projeto é uma API RESTful desenvolvida com Java 21 e Spring Boot 4, focada na implementação de um fluxo completo de autenticação e autorização stateless utilizando JWT (JSON Web Tokens).

🏗️ Arquitetura e Fluxo

A aplicação utiliza um modelo de segurança baseado em filtros, onde cada requisição protegida deve carregar um token de acesso válido.

  • Autenticação: Gerenciada pelo AuthController via POST /auth/login, onde as credenciais são validadas pelo AuthenticationManager.
  • Segurança: Configurada centralmente no SecurityConfig, que define quais rotas são públicas ou protegidas.
  • Filtro Customizado: O SecurityFilter intercepta cada requisição para validar o Token JWT presente no Header.
  • Geração de Token: O TokenConfig utiliza o algoritmo HMAC256 para assinar tokens que expiram em aproximadamente 2 horas (8400 segundos).
  • Banco de Dados: Persistência realizada via Spring Data JPA com controle de migrações pelo Flyway.

💎 Pilares de Engenharia

  • Proteção Multicamadas: Filtros de segurança customizados interceptam cada requisição antes mesmo de chegarem aos dados.
  • Gestão de Identidade: Integração nativa com UserDetailsService para uma gestão de usuários flexível e segura.
  • Deploy Ágil e Seguro: Versionamento de banco de dados via Flyway e containerização, garantindo que o ambiente de produção seja idêntico ao de desenvolvimento, evitando erros humanos no deploy.

🛠️ Tecnologias e Dependências

As seguintes ferramentas foram utilizadas para construir este ecossistema:

  • Java 21: Versão da linguagem utilizada.
  • Spring Boot 4.0.2: Framework base da aplicação.
  • Spring Security: Engine de proteção e controle de acesso.
  • Java-JWT (Auth0): Biblioteca para criação e validação de tokens.
  • Flyway & MySQL: Versionamento de esquema e driver de conexão para banco de dados.
  • Lombok: Otimização de código e redução de boilerplate.
  • Jakarta Validation: Validação de dados de entrada nos DTOs.
  • Docker: Infraestrutura e dedicação de recursos.

📥 Clonagem e Configuração

1. Clonar via SSH

git clone  git@github.com:Ivictors/Spring-Security-Autentica-o-JWT.git

About

Um Sistema de autenticação que garante a segurança se baseando em filtros de permissão, onde cada requisição protegida deve carregar um token de acesso válido.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages