Modelo simples de uma aplicação Java utilizando framework Quarkus, banco de dados com Postgres e autenticação com Keycloak.
- Quarkus Framework
- Keycloak;
- Docker para rodar o servidor do Keycloak;
- Java 11
- Docker
- Postman ou Insomnia
- Gerenciador de banco (Recomendado: DBeaver)
- Maven (Opcional: ./mvnw + command )
docker run -p 5432:5432 -e POSTGRES_PASSWORD=1234 postgres
docker run --name keycloak -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -p 8180:8080 quay.io/keycloak/keycloak:17.0.0 start-dev
Após realizar o download das imagens no docker, certifique-se de que as mesmas estão rodando:
docker ps
Com um gerenciador de bancos de sua preferencia, configure uma conexão remota, utilizando os seguintes parâmetros:
- customer:
jdbc:postgresql://localhost:5432/customerdb
- product:
jdbc:postgresql://localhost:5432/productdb
- order:
jdbc:postgresql://localhost:5432/orderdb
Obs: O username e o password encontram-se dentro do arquivo applications.yml de cada micro serviço.
Após realizar o download das imagens no docker, certifique-se de que as mesmas estão rodando:
docker ps
No seu navegador, acesso a url: http://localhost:8180/
em seguida, informe o login e a senha:
Username or email: admin
Password: admin
**Obs: Lembrando que o o login e a senha são de fins didáticos e não devem ser usadas em ambientes de produção.
O próximo passo é importar as configurações do Keykloak, que estão dentro do arquivo realm.json, na raiz do projeto. Para realizar a importação, clique no botão Add realm que se encontra no menu Quarkus em baixo do logotipo do Keycloak.
Após importar as configurações, será necessário criar um usuário no keycloak. Para isso, basta ir no menu Manage, na opção user e clicar na opção Add user. Informe um nome de usuário e clique na opção Save.
Precisamos criar uma senha para este usuário. Para isso, clique na opção View all users e clique no ID do seu usuário criado. Na guia Credentials, informe um password, repita o password e desmarque a opção Temporary e clique em Reset Password.
Agora, precisamos configurar o client que será utilizado na aplicação, no nosso exemplo será o Backend-service.
No menu Configure, na opção Clients, clique no nome do Backend-service. Na guia Service Account Roles, adicione as roles admin e user.
Vá para o menu Manage, na opção user e clique no ID do seu usuário criado. Na guia Role Mappings, adicione todas as roles existentes.
Dentro da raiz de cada micro serviço, execute o seguinte comando no Windows:
.\mvn clean package -DskipTests
ou caso esteja utilizando o Linux:
./mvn clean package -DskipTests
***Obs: É recomendado utilizar três terminais separados, pois em cada um será rodado um micro serviço.
Em cada terminal, rode o seguinte comando:
java -jar target/quarkus-app/quarkus-run.jar
- Customer: 8080
- Product: 8081
- Order: 8082
- Keycloak: 8100
Na pasta postman_collection, se encontra todos os endpoints utilizados nos micro serviços, bem como a autenticação no keycloak.