Tempo aproximado para leitura: 00:02:04 min
Ocorrência
O produto Datasul com Jboss4.2.3.GA não permite requisições para servidores diferentes, o que reflete em bloqueio das requisições pelo CORS.
Ambiente
Framework - Framework (Linha Datasul) - JBoss - Todas as versões
Causa
Este incidente ocorre, pois nativamente o Datasul com o Jboss4.2.3.GA não atua nas Headers das requisições e credenciais para trafegarem em requisições do tipo CORS.
Solução
Para adequar o produto Datasul com Jboss4.2.3.GA a realizar o devido gerenciamento das conexões, é necessário implementar o Datasul-Valve, conforme procedimento abaixo:
1) Localize o arquivo server.xml, que pode ser encontrado na instância do Jboss - ..\deploy\jboss-web.deployer\server.xml;
2) Adicione as linhas a seguir abaixo da tag <Host name=.....:
<Valve className="com.datasul.framework.valve.DatasulValve"
allowHeaders="Content-Type,Accept,Accept-Language,Content-Language,Authorization"
contextsToValidate="/dts/datasul-rest,/api,/webexecbo"
allowOrigin="*"
allowMethods="GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS"
allowCredential="true" />
3) Adicione o arquivo datasul-framework-valve.jar no diretório lib, relacionado à instância do Jboss. O mesmo está disponível para download em Datasul-Valve.
Importante
A tag Valve deve estar configurada como o último elemento da tag Host. Caso exista algum Header da request diferente dos informados anteriormente - allowHeaders, estes devem ser incluídos nessa tag.
Caso seja necessário restringir o acesso de acordo com o servidor de origem, o mesmo deve ser informado no atributo allowOrigin no formato <protocolo>://<servidor>:<porta>.
Ex: allowOrigin="http://localhost:8080".
Para adicionar mais de um host basta adicionar os valores separados por espaço.
EX: allowOrigin="http://localhost:8080 http://server-t1:8180 http://server-t2:8480".
0 Comentários