Implementando CORS em Aplicações Quarkus
Introdução
O CORS (Cross-Origin Resource Sharing) é um mecanismo que permite que recursos restritos em uma página web sejam solicitados a partir de um domínio diferente do domínio onde o primeiro recurso foi disponibilizado. O CORS é essencial no desenvolvimento de aplicações modernas, especialmente quando temos frontend e backend em domínios diferentes.
Neste guia, vamos aprender como implementar e configurar o CORS em aplicações Quarkus, permitindo que sua API seja consumida de forma segura por aplicações em diferentes origens.
Pré-requisitos
JDK 11+ instalado
Maven ou Gradle configurado
Conhecimento básico de Quarkus
IDE de sua preferência (VS Code, IntelliJ IDEA, Eclipse)
Habilitando CORS no Quarkus
O Quarkus oferece suporte nativo para CORS através da extensão quarkus-resteasy-reactive-jackson
ou quarkus-resteasy-jackson
, dependendo de qual stack REST você está utilizando (reativa ou tradicional).
Passo 1: Adicionando a extensão necessária
Se você ainda não tem um projeto Quarkus, crie um com o comando:
Para adicionar suporte ao CORS, inclua a extensão RESTEasy no seu projeto:
Para Maven (pom.xml):
Passo 2: Configurando CORS no application.properties
O Quarkus torna a configuração do CORS simples através do arquivo application.properties
. Adicione as seguintes linhas:
Passo 3: Configurando CORS para endpoints específicos (Opcional)
Se você precisar de configurações específicas para rotas diferentes, pode usar anotações para isso em seus recursos JAX-RS:
Testando sua configuração CORS
Usando cURL para testar a resposta OPTIONS (Preflight)
Você deve ver cabeçalhos na resposta como:
Usando uma aplicação web
Se você tiver uma aplicação frontend (como React, Angular ou Vue) rodando em http://localhost:3000
, pode testar a comunicação com seu backend Quarkus com um código simples:
Considerações de Segurança
Não use
*
em produção: Emboraquarkus.http.cors.origins=*
permita requisições de qualquer origem, isso só deve ser usado em desenvolvimento.Limite os métodos e cabeçalhos: Configure apenas os métodos HTTP e cabeçalhos que realmente são necessários para sua aplicação.
Access-Control-Allow-Credentials: Tenha cuidado ao habilitar esta opção em conjunto com origens muito amplas, pois isso pode criar vulnerabilidades de segurança.
Diferencie ambientes: Use perfis do Quarkus para ter configurações distintas em desenvolvimento e produção:
Conclusão
O Quarkus oferece uma maneira simples e eficiente de configurar o CORS em suas aplicações. Com poucas linhas de configuração, você pode garantir que sua API seja acessível de forma segura por clientes em diferentes origens, seguindo as melhores práticas de segurança web.
A abordagem de configuração baseada em propriedades facilita tanto a manutenção quanto a adaptação para diferentes ambientes, tornando o Quarkus uma excelente escolha para o desenvolvimento de APIs modernas e seguras.