Problema:
Como faço para me manter autenticado dentro do dataset do Fluig?
Detalhes:
Estou trabalhando com um formulário do Fluig, neste formulário necessário que o Fluig busque de um ERP os dados de clientes através do CPF dele.
Primeiramente eu cadastrei um serviço no Fluig. Com o serviço cadastrado, foi criado um Dataset que realiza duas chamadas à este serviço: - Chamada 1: No método de Login. Em: /resources/login?username=super&password=super - Chamada 2: Na busca do Cliente. Em: /resources/clientes?search=123456789012&page......
Caso eu acessa a URL de login via browser, ele retorna um token e cria um cookie na sessão. Com isso ele se mantem autenticado e na segunda chamada ele retorna um JSON com os dados do cliente.
No Dataset do Fluig não estou conseguindo me manter autenticado. Como o ERP utiliza o JBoss4, até onde sei, não é possível utilizar da autenticação OAuth, Tentei realizar a autenticação Basic, mas também não é contemplada pelo webservice. Logo o que resta é me manter autenticado pelos cookies/sessão. Porém, por mais que eu consiga realizar o login, eu não consigo na segunda chamada passar o token ou o cookie.
Você deve fazer essa consulta utilizando o Web Service SOAP de Dataset, que precisa de credenciais de admin para acesso a dados: http://lab.fluig.com/webdesk/ECMDatasetService?wsdl Utilizar cookies/sessão não é uma boa saída porque você vai depender do tempo de expiração desses componentes.
— Peter Angelo 20 de Dec de 2018Mas o meu problema não está em consumir o dataset. A comunicação Fuig <-> Dataset ocorre normalmente
Meu problema é a comunicação Dataset <-> ERP. Onde eu tenho apenas um web-service Rest que exige o cookie/sessão para autenticação
— Carlos A. Armiliato 20 de Dec de 2018Oi Carlos, eu nunca passei por esse cenário, mas por acaso tu tentou fazer o consumo via HTTP mesmo? Puro do JAVA com url connection e etc? Usando os métodos padrão do JAVA você consegue setar qualquer HEADER na conexão http. Talvez consiga passar o cookie assim.
— Rafael Vanat 20 de Dec de 2018Rafael, o Dataset do Fluig aceita código Java nativo? Não faz muito tempo que estou desenvolvendo com o Fluig, então não sabia disso. Porém, se ele aceita, acredito que consigo resolver meu problema desta forma
— Carlos A. Armiliato 20 de Dec de 2018Roda a engine de Script Rhino, não é 100% como no JAVA, por exemplo as variáveis não são tipadas. Você faria (por exemplo) só um var conn = new java.net.URLConnection(url). Mas estando a classe no classpath carregado você consegue usar, você usa ela com o nome completo (pacote + classe). Como orientação geral, certifique-se sempre de fechar conexões e stream, e nunca use threads.
— Rafael Vanat 20 de Dec de 2018Obrigado Rafael!!
— Carlos A. Armiliato 20 de Dec de 2018Responde ai se conseguir resolver sua situação.
— Rafael Vanat 21 de Dec de 2018Eu consegui fazer em Java uma classe que faz a autenticação e consome os dados, funcionou perfeitamente. Agora estou tentando adaptar o código Java para a engine do Rhino.
— Carlos A. Armiliato 21 de Dec de 2018