Introdução
Nesta série de blogs em 2 partes, vou mostrar como você pode criar um aplicativo web completo usando o framework Micronaut com a linguagem de programação Groovy. Micronaut é um framework nativo da JVM para nuvem projetado especificamente para criar microserviços na nuvem. Micronaut tem um tempo de inicialização extremamente rápido, baixo consumo de memória e se integra facilmente com várias tecnologias de terceiros.
Vou cobrir os seguintes aspectos nesta série de blogs em 2 partes:
-
Parte 1 - Compreender como implementar autenticação e autorização neste aplicativo web.
-
Parte 2 - Compreender como você pode integrar com o banco de dados na nuvem HANA para persistência e como pode realizar testes locais.
Objetivo
-
Criar um aplicativo web completo que possa realizar operações CRUDQ em uma tabela no banco de dados na nuvem HANA.
-
Implementar autorização e autenticação.
-
Fornecer um modelo para a configuração inicial dos desenvolvedores.
Pré-Requisitos
Você deve garantir que os seguintes componentes já estejam instalados no sistema:
-
Tempo de execução da JVM.
-
Tempo de execução do Groovy.
-
Tempo de execução do Micronaut.
Navegue até sua pasta favorita e crie um novo projeto Micronaut.
mn create-app --build=gradle --jdk=8 --lang=groovy --test=junit --features=security-session,data-jdbc,views-thymeleaf,h2 com.sap.sflight
Os seguintes arquivos serão criados.
Abra o arquivo build.gradle e adicione as seguintes dependências marcadas com comentários:
-
com.sap.cloud.db.jdbc:ngdbc:2.13.9
(Driver do banco de dados HANA)
-
io.pivotal.cfenv:java-cfenv-boot:2.4.0
(Para acessar a variável VCAP da aplicação. Isso será necessário para ler a chave pública com a qual o token JWT será verificado.)
-
com.sap.cloud.security:sapjwt:1.5.27.5
(Para verificar o token JWT usando o certificado de chave pública extraído usando a dependência anterior)
-
com.sap.cloud.security:java-security:2.13.0
(Para extrair os detalhes do usuário e funções do token JWT).
dependencies {
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut.data:micronaut-data-jdbc:3.4.2")
implementation("io.micronaut.groovy:micronaut-runtime-groovy")
implementation("io.micronaut.security:micronaut-security-session")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
<