Spring boilerplate
Este projeto de inicialização do Spring foi desenvolvido pensando nas configurações de autenticação padrão e na documentação para servir de base para o desenvolvimento de outros projetos.
- Controle de acesso baseado em regras com JWT 🔑
- Tecnologias usadas 🔛
- Java 8
- Maven 3.6.3
- Spring Boot 2.7.0
- Starter Web
- Starter Data JPA
- Starter Test (JUnit / Mockito)
- Starter Log4J2
- Devtools
- Spring Security 5.6.4
- Secutiry Oauth2 Autoconfigure 2.1.5
- Security Test
- Springfox (Swagger) 3.0.0
- Lombok - Help setting up lombok
- Database
- Postgres:13 (Relational Database)
- Starter Data Redis (Token Store)
- h2database (Profile Test)
- Application.properties - Default 📃
- Port: 5000
- Profile: dev
- Base path: /api
- Encrypt: bcrypt
- Hibernate DDL: update
- ExceptionHandler ❌
- ProjectException:
- Status: 400
- Description: Exception provoked, n reasons, but mainly business rule
- AuthorizationException:
- Status: 403
- Description: Access Denied with RuntimeException
- ProjectException:
Não é necessario ter Java, Maven, Postgres ou redis instalado, todos os serviços vão executar em containers Docker.
- Docker 🔽
- Instalar docker here
- Arquivo .env 📋
- Exemplo:
DB_AUTHSERVICE_DATABASE_NAME=authservice_database DB_AUTHSERVICE_USERNAME=postgres DB_AUTHSERVICE_PASSWORD=pg_postgres CLIENT_ID=52da334b25d96304a09901705846663fef41ce8f CLIENT_SECRET=99214c1e0dd20c56e76d4b2716b39e63a38e8d9b
- Git clone do projeto
git clone https://github.com/andresinho20049/spring-authservice-with-docker.git
- Entre na pasta do projeto
cd spring-authservice-with-docker
- Crie um arquivo
.env
na pasta raiz do projeto
tee -a ./.env <<EOF
DB_AUTHSERVICE_DATABASE_NAME=authservice_database
DB_AUTHSERVICE_USERNAME=postgres
DB_AUTHSERVICE_PASSWORD=pg_postgres
CLIENT_ID=52da334b25d96304a09901705846663fef41ce8f
CLIENT_SECRET=99214c1e0dd20c56e76d4b2716b39e63a38e8d9b
Para sair digite EOF, então pressione ENTER
- Execute docker compose com env file parametros
docker compose --env-file=./.env up --build
Ele é configurado por padrão para iniciar no perfil Dev, neste perfil um usuário de suporte é criado ao iniciar o Spring
O user default é: 😎
Username: [email protected]
Password: strongPassword@1234
Com o projeto em execução, visite a página do Swagger para testar os endpoints
- No navegador digite o path:
/api/swagger-ui/index.html
- ou se preferir click aqui
tambem visite redis console, rodando na porta 8001
{
"id": 1,
"name": "Admin",
"email": "[email protected]",
"updatePassword": true,
"active": true,
"roles": [
{
"name": "ROLE_ADMIN"
}
]
}
[
{
"name": "ROLE_ADMIN"
},
{
"name": "ROLE_VIEW_USER"
},
{
"name": "ROLE_CREATE_USER"
},
{
"name": "ROLE_UPDATE_USER"
},
{
"name": "ROLE_DISABLE_USER"
}
]
{
"aud": [
"restservice"
],
"updatePassword": true,
"user_name": "[email protected]",
"scope": [
"all"
],
"name": "Admin",
"exp": 1655404387,
"authorities": [
"ROLE_ADMIN"
],
"jti": "7d12042b-856b-41a7-b1d9-6acb220840a7",
"client_id": "52da334b25d96304a09901705846663fef41ce8f"
}
Este projeto foi desenvolvido para poder utilizá-lo como serviço de autenticação para outras aplicações, como sites
Projeto: Spring boot com Redis e Postgres usando Docker
Author: André Carlos (andresinho20049)