Conexão e autenticação com ElasticSearch + Shield
10/03/2016 14:53
Olá pessoal,
Encontramos como solução para buscas a plataforma ElasticSearch em nosso projeto aqui na empresa. Utilizando o plugin do grails oficial, é possível conectar com uma instância do ElasticSearch e configurar algumas opções.
O ElasticSearch possui uma interface REST na qual é possível realizar consultas, porém conforme a própria documentação da plataforma declara, não há segurança, a instância fica aberta e qualquer indíviduo pode acessar a mesma e consultar os resultados via REST (na prática, meu banco de dados estaria aberto, livre de autenticações e indexado (!!!!!! what?). Ainda, segundo a documentação, não há o conceito de usuário implementado e todas as questões de segurança e acesso aos dados são de responsabilidade do desenvolvedor (!!!).
Em contrapartida, a própria equipe do ElasticSearch desenvolveu um plugin de segurança chamado "shield" que adiciona uma camada de autenticação (autenticação HTTP simples com username e senha) na qual é preciso instalar e adicionar o mesmo aos plugins do ElasticSearch e posteriormente definir um usuário que terá autorização de realizar chamadas ao servidor do motor de buscas. Após isso, requisições precisarão passar um parametro a mais no header: "Authorization" sendo assim possível consultar a API do motor de buscas.
Estou tentando realizar tal autenticação via grails. Em tese, necessitaria enviar esta chave no header de todas as requisições para o motor de buscas de forma a permitir que apenas a minha aplicação grails possa fazer pesquisas no ElasticSearch. É possível realizar isto com o grails? Alguém possuiria uma experiência similar com esta engine de buscas?
Obrigado
Tags:
Grails, ElasticSearch, buscas, motor, engine, shield