Como Rodar Localmente - ecosif-auth
Este guia explica como configurar e executar o ecosif-auth em seu ambiente local de desenvolvimento.
Pré-requisitos
Softwares Necessários
Verificação
# Verificar Java
java -version
# Deve mostrar versão 17 ou superior
# Verificar Maven
mvn -version
# Deve mostrar versão 3.6 ou superior
# Verificar PostgreSQL
psql --version
# Deve mostrar versão 13 ou superior
Passo 1: Clone do Repositório
git clone <url-do-repositorio>
cd ecosif-auth
Passo 2: Configuração do Banco de Dados
Criar Banco de Dados
# Conectar ao PostgreSQL
psql -U postgres
# Criar banco de dados
CREATE DATABASE ecosif;
# Criar usuário (opcional)
CREATE USER ecosif_user WITH PASSWORD 'sua_senha';
GRANT ALL PRIVILEGES ON DATABASE ecosif TO ecosif_user;
# Sair
\q
Variáveis de Ambiente do Banco
Configure as seguintes variáveis de ambiente:
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_DB=ecosif
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=sua_senha
Ou crie um arquivo .env na raiz do projeto:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ecosif
POSTGRES_USER=postgres
POSTGRES_PASSWORD=sua_senha
Passo 3: Configuração da Aplicação
Variáveis de Ambiente Necessárias
Crie um arquivo .env ou configure as variáveis:
# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ecosif
POSTGRES_USER=postgres
POSTGRES_PASSWORD=sua_senha
# Server
ECOSIF_AUTH_PORT=8080
# JWT
AUTH_TOKEN_SECRET=sua_chave_secreta_muito_longa_e_segura_minimo_64_caracteres
TOKEN_EXPIRATION=1800000 # 30 minutos em milissegundos
# OAuth2 (Opcional - deixe vazio para desabilitar)
AUTH2_CLIENT_ID=
AUTH2_SECRET=
# CORS
ECOSIF_CORS=http://localhost:4200
# Flyway
ECOSIF_FLYWAY_ENABLED=true
# Hibernate
HIBERNATE_DDL_AUTO=none
# Logging
LOG_FORMAT=default
ECOSIF_LOGSHOW=false
ECOSIF_LOGMODE_ROOT=INFO
ECOSIF_LOGMODE_SPRING=INFO
ECOSIF_LOGMODE_HIBERNATE_SQL=INFO
Gerar Chave Secreta JWT
Para gerar uma chave secreta segura:
# Opção 1: Usando openssl
openssl rand -base64 64
# Opção 2: Usando Python
python3 -c "import secrets; print(secrets.token_urlsafe(64))"
Importante: A mesma chave secreta deve ser usada em todos os serviços ecosif que validam tokens JWT.
Passo 4: Instalar Dependência Local (ecosif-database)
O projeto depende da biblioteca ecosif-database. Se necessário:
# Instalar JAR local
mvn install:install-file \
-Dfile=libs/ecosif-database-0.7.01.202511270.jar \
-DgroupId=io.ecosif.database \
-DartifactId=ecosif-database \
-Dversion=0.7.01.202511270 \
-Dpackaging=jar
Passo 5: Executar a Aplicação
Opção 1: Maven
mvn spring-boot:run
Opção 2: Build e Executar JAR
# Build
mvn clean package -DskipTests
# Executar
java -jar target/ecosif-authapp.jar
Opção 3: IDE (IntelliJ IDEA / Eclipse)
- Importe o projeto como projeto Maven
- Configure as variáveis de ambiente no Run Configuration
- Execute a classe
Application.java
Passo 6: Verificar se Está Funcionando
Health Check
curl http://localhost:8080/actuator/health
Resposta esperada:
{
"status": "UP"
}
Swagger UI
Acesse no navegador:
http://localhost:8080/swagger-ui.html
Testar Autenticação
curl -X POST http://localhost:8080/api/auth/signin \
-H "Content-Type: application/json" \
-d '{
"username": "admin",
"password": "admin123",
"azure": false
}'
Nota: Você precisa criar um usuário no banco de dados primeiro (via migração Flyway ou manualmente).
Troubleshooting
Erro: "Cannot connect to database"
- Verifique se PostgreSQL está rodando:
bash sudo systemctl status postgresql # Linux brew services list | grep postgresql # macOS - Verifique se as credenciais estão corretas
- Verifique se o banco de dados foi criado
Erro: "Port 8080 already in use"
- Altere a porta em
ECOSIF_AUTH_PORTou emapplication.yml - Ou encerre o processo que está usando a porta: ```bash # Linux/macOS lsof -ti:8080 | xargs kill -9
# Windows
netstat -ano | findstr :8080
taskkill /PID
Erro: "Flyway migration failed"
- Verifique se o banco está acessível
- Verifique se as migrações estão corretas
- Limpe o schema se necessário:
sql DROP SCHEMA public CASCADE; CREATE SCHEMA public;
Erro: "AUTH_TOKEN_SECRET not set"
- Certifique-se de definir a variável
AUTH_TOKEN_SECRET - Use uma chave longa e segura (mínimo 64 caracteres)
Logs não aparecem
- Verifique o nível de log em
ECOSIF_LOGMODE_ROOT - Habilite logs SQL se necessário:
ECOSIF_LOGSHOW=true
Desenvolvimento
Hot Reload
Com Spring Boot DevTools instalado, a aplicação recarrega automaticamente quando você faz alterações no código.
Debug
Para executar em modo debug:
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
Depois, conecte seu IDE na porta 5005.
Executar Testes
# Todos os testes
mvn test
# Teste específico
mvn test -Dtest=AuthControllerTest
# Com cobertura
mvn test jacoco:report
Próximos Passos
Suporte
Se encontrar problemas:
1. Verifique os logs da aplicação
2. Consulte a documentação em /docs
3. Abra uma issue no repositório