Recursos • Tecnologias • Instalação • API Endpoints
Este projeto demonstra a implementação de segurança em uma aplicação Spring Boot usando Spring Security e JSON Web Tokens (JWT).
-
Cadastro e Login de Usuário: Sistema de registro e login de usuários.
-
Autenticação JWT: Utiliza JSON Web Tokens para autenticar usuários. Permitindo autenticação sem salvar estado.
-
Criptografia de Senha: Senhas dos usuários são criptografadas usando o algoritmo BCrypt, proporcionando uma camada adicional de segurança.
-
Autorização Baseada em Role: Acesso a rotas e recursos com base nas funções (roles) do usuário.
- Java 17
- GIT
git clone [email protected]:joaocarlosjunior/spring-security-jwt.git
rota | descrição |
---|---|
POST /auth/signup | Cria usuário request e response details |
POST /auth/login | Autentica usuário request e response details |
Rotas que precisam de autenticação e autorização USER e ADMIN:
rota | descrição |
---|---|
GET /users/user | Retorna dados do usuário autenticado request e response details |
Rotas que precisam de autenticação e autorização ADMIN:
rota | descrição |
---|---|
GET /users | Retorna todos usuários cadastrados request e response details |
REQUEST
{
"firstName": "João",
"lastName": "Carlos",
"email": "[email protected]",
"password": "1234",
"role": "ROLE_USER"
}
RESPONSE
{
"firstName": "João",
"lastName": "Carlos",
"email": "[email protected]",
"role": "ROLE_USER"
}
REQUEST
{
"email": "[email protected]",
"password": "1234"
}
RESPONSE
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzZWN1cml0eS1qd3QtYXBpIiwiaWF0IjoxNzE0NzYyNzIzLCJleHAiOjE3MTQ3OTg3MjMsInN1YiI6ImVtYWlsQGdtYWlsLmNvbSJ9.mBrdogTyydRMUeuIXwnVWF1n8wl00sBRXZoHzH3aPfw"
}
REQUEST HEADER
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzZWN1cml0eS1qd3QtYXBpIiwiaWF0IjoxNzE0NzYyNzIzLCJleHAiOjE3MTQ3OTg3MjMsInN1YiI6ImVtYWlsQGdtYWlsLmNvbSJ9.mBrdogTyydRMUeuIXwnVWF1n8wl00sBRXZoHzH3aPfw"
}
RESPONSE
{
"firstName": "João",
"lastName": "Carlos",
"email": "[email protected]",
"role": "ROLE_USER"
}
REQUEST HEADER
{
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzZWN1cml0eS1qd3QtYXBpIiwiaWF0IjoxNzE0NzY2MDgzLCJleHAiOjE3MTQ4MDIwODMsInN1YiI6ImpvYW9AZW1haWwuY29tIn0.So9Z0B91jo1A0hbiBE9ELBNyVuAU-_tsZzVGQUlZNGE"
}
RESPONSE
[
{
"firstName": "João",
"lastName": "Carlos",
"email": "[email protected]",
"role": "ROLE_USER"
},
{
"firstName": "João",
"lastName": "Ribas",
"email": "[email protected]",
"role": "ROLE_ADMIN"
}
]