Skip to content

Criação de autenticação e autorização via JWT com Spring Security 6 de um sistema Twitter.

Notifications You must be signed in to change notification settings

ddouglss/twitter-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo2

🛡️ Spring Security 6 + JWT + MySQL

Java License

Este projeto é um backend seguro inspirado na estrutura do Twitter, desenvolvido com foco em boas práticas de segurança utilizando o Spring Security 6. A autenticação e autorização são feitas por meio de tokens JWT, garantindo uma aplicação 100% stateless, ideal para ambientes modernos e escaláveis.

A aplicação implementa controle de acesso com roles de usuário (USER e ADMIN), protegendo rotas com base nas permissões apropriadas. A persistência dos dados é feita via banco de dados MySQL, executado em ambiente isolado através do Docker.


🔐 Tecnologias e funcionalidades

  • ✅ Spring Boot + Spring Security 6
  • ✅ Autenticação e autorização com JWT (stateless)
  • ✅ Geração e uso de chave pública/privada para tokens JWT
  • ✅ Controle de acesso com roles (ROLE_USER, ROLE_ADMIN)
  • ✅ Boas práticas de segurança para APIs REST
  • ✅ Integração com banco de dados MySQL via Docker

✅ Funcionalidades

  • [PUBLIC] Criar novo usuário
  • [PUBLIC] Login com geração de token JWT
  • [ADMIN] Listar todos os usuários
  • [PRIVATE] Criar tweet (autenticado)
  • [PRIVATE] Deletar tweet (autenticado)
  • [PUBLIC] Listar tweets (feed público)

🚀 Tarefas Realizadas

  • Iniciar projeto com dependências:
    • Spring Web, Spring Security, OAuth2 Resource Server, Spring Data JPA, MySQL Driver
  • Criar entidades: User, Role, Tweet
  • Criar repositórios JPA
  • Configurar autenticação e autorização com JWT
  • Gerar par de chaves pública e privada para o token
  • Criar funcionalidades públicas e protegidas
  • Automatizar criação do admin e roles no startup
  • Testar endpoints e segurança

🐳 Como rodar com Docker

  1. Subir banco MySQL com Docker:
docker run --name mysql-secure -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=twitter_clone -p 3306:3306 -d mysql:8.0
  1. Rodar aplicação Spring Boot normalmente.

🧪 Testes

A API pode ser testada com ferramentas como Postman ou Insomnia, utilizando o token JWT retornado no login para acessar rotas privadas e administrativas.


📄 Licença

Este projeto está licenciado sob a licença MIT.

✍️ Autor

Douglas Souza Silva
Estudante e desenvolvedor Java em constante aprendizado.
LinkedInGitHub


Este repositório acompanha a evolução prática do conteúdo abordado no curso, com foco em aprendizado sólido e aplicação no mundo real.

About

Criação de autenticação e autorização via JWT com Spring Security 6 de um sistema Twitter.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages